스크립트에서 인증서 해지 여부를 확인하려고 하는데 다음 오류가 발생합니다.
unable to load certificate
140735258465104:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
단계는 다음과 같습니다(예: www.google.com 사용).
인증서 받기
$ echo 'Q' | openssl s_client -connect www.google.com:443 > google.crt
발급자의 URI를 추출합니다.
$ openssl x509 -in google.crt -text -noout | grep 'CA Issuers' | \ sed -e "s/^.*CA Issuers - URI://
이것은
http://pki.google.com/GIAG2.crt
발급자 인증서 받기
$ curl --silent http://pki.google.com/GIAG2.crt > issuer.crt
OCSP URI 추출
$ openssl x509 -in google.crt -ocsp_uri -noout
이것은
http://clients1.google.com/ocsp
이제 마지막 단계가 왔습니다.
$ openssl ocsp -no_nonce -issuer issuer.crt -cert google.crt \
-url http://clients1.google.com/ocsp
unable to load certificate
140735258465104:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
내가 뭘 잘못했나요?
편집하다
http://pki.google.com/GIAG2.crt
방금 DER 형식으로 되어 있는 것을 봤습니다 . PEM으로 변환
$ openssl x509 -inform DER -outform PEM -in issuer.der -out issuer.pem
한걸음 더 나아가자고 하지만
$ openssl ocsp -no_nonce -issuer issuer.pem -cert google.crt \
-url http://clients1.google.com/ocsp
Error querying OCSP responder
140735258465104:error:27076072:OCSP routines:PARSE_HTTP_LINE1:server response error:ocsp_ht.c:255:Code=404,Reason=Not Found
이 오류는 의미가 있습니다.http://clients1.google.com/ocsp404를 제공하지만 URL은 원래 인증서에 저장된 URL입니다.
다음 질문은 발급자 인증서의 형식을 자동으로 감지하는 방법이지만 file
파일이 바이너리인지 ASCII인지 확인하고 확인할 수 있습니다.
답변1
제목 을 설정해야 합니다 Host
. 문서화되지 않은 명령줄 플래그가 있습니다. 노력하다:
openssl ocsp -no_nonce -issuer issuer.pem -cert google.crt \
-url http://clients1.google.com/ocsp \
-header Host clients1.google.com