우선 관련 질문이 많은 것으로 알고 있는데 대부분 서버에 발급자 인증서가 부족해서 그런 것 같습니다.
나는 팔로우해왔다이 가이드SSL을 사용하여 클라이언트 인증을 활성화했지만 Apache가 클라이언트 인증서를 수락하도록 하는 데 막혔습니다. 자세히 살펴보면 Apache 로그가 Certificate Verification: Error (20): unable to get local issuer certificate
메시지로 채워져 있습니다.
CA에서 제공한 인증서와 내 개인 키를 CA로 사용하고 있습니다.
문제를 더 자세히 진단하기 위해 실행했는데 openssl verify -CAfile ca.cert client_signed.crt
동일한 오류가 발생했습니다.
모든 단계를 다시 실행하기로 결정했습니다. 그러나 명령줄에서 모든 작업을 수행하면 여전히 동일한 오류가 반환됩니다.
$ openssl x509 -req -days 360 -in client.csr -CA ca.cert -CAkey ca.key -CAcreateserial -out client_signed.crt
Signature ok
subject= ...
Getting CA Private Key
Enter pass phrase for server.key:
[I type in the password and press ENTER]
$ openssl verify -CAfile ca.cert client_signed.crt
[ .. ]
error 20 at 0 depth lookup:unable to get local issuer certificate
$ ls ca.cert
ca.cert
문제를 완전히 진단하기 위해 클라이언트 인증서에 서명하기 위해 CA로 사용할 인증서를 생성하고 자체 서명하기로 결정했습니다. 놀랍게도,이것은 완벽하게 작동했습니다. 이것은 실제로 제가 연결한 튜토리얼의 첫 번째 단계입니다.
분명히 문제는 내 인증서와 관련이 있습니다. 내 인증서에 서명한 CA의 인증서가 없기 때문에 신뢰 체인과 관련된 것이 있는 것으로 의심됩니다. 다운로드를 시도했습니다.그들의 웹사이트에서하지만 내 자신의 인증서도 확인할 수 없습니다.
$ ls /path/to/downloaded/files/
acrn.cer ancca.crt CorreoUruguayoCA.crt CorreoUruguayoRootCA.crt
$ openssl verify -CApath /path/to/downloaded/files/ my.cert
error 20 at 0 depth lookup:unable to get local issuer certificate
어떤 도움이라도 대단히 감사하겠습니다.
편집: Ubuntu에서 "파일 보기" 유틸리티를 사용하면 내 인증서가 Verified by: Correo Uruguayo - CA
. openssl이 왜 그것을 확인하지 못하는지 잘 모르겠습니다.