I “m using this command :
작동합니다. CAfile을 지정하지 않으면 코드 20이 생성됩니다. 인증서는 /etc/ssl/certs
및 /usr/lib/ssl/certs -> /etc/ssl/certs
또한 ca-certificates.crt
Openssl이 내 인증서를 찾을 수 있는지 여부와 수락하도록하는 방법을 결정하는 내용에도 포함되어 있습니다. 이 인증서를 명시 적으로 지정하지 않았나요?
댓글
답변
-CApath
또는 -CAfile
인수. Ubuntu 14.04의 OpenSSL은 다음과 같이 설명 할 때이 버그로 고통받습니다.
버전 :
ubuntu@puppetmaster:/etc/ssl$ openssl version OpenSSL 1.0.1f 6 Jan 2014
다음과 같은 경우 기본 저장소를 사용하지 못합니다. `-ca :
ubuntu@puppetmaster:/etc/ssl$ openssl s_client -quiet -connect gmail.com:443 depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA verify error:num=20:unable to get local issuer certificate verify return:0
이제 -CApath
로 null을 전달하면 작동합니다.
ubuntu@puppetmaster:/etc/ssl$ openssl s_client -quiet -connect gmail.com:443 -CApath /dev/null depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority verify return:1 depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA verify return:1 depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2 verify return:1 depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = mail.google.com verify return:1
안타깝게도 영향을받는 OpenSSL 버전 목록이 존재하지 않는다고 생각합니다. 알 수있는 유일한 방법은 테스트하는 것입니다.
댓글
- 감사합니다. 해당 버전을 사용하고있었습니다. OpenSSL 1.1.0으로 문제가 해결되지 않은 것 같습니다. I ' m 여기에 나열된 문제가 표시되지 않음 : github.com/openssl/openssl/issues 문제를 참조 할 수 있습니까?
- 그것 ' 이전 RT 문제 추적기 에 있습니다. 거기에 패치가 있습니다. ' s 뒤에 로그인 (guest : guest) '의 문제 # 3697, 해결됨으로 표시됨. rt.openssl.org/Ti cket / Display.html? id = 3697
- 좋아, 나는 이것이 적어도 그것의 richsalz 포크에서 1.1에서 수정되었음을 확인했다. 업그레이드 할 때 처음에는 기본 디렉터리가
/etc/ssl/certs
에 매핑되지 않은 인증서 디렉터리가있는/usr/local/ssl
로 이동 한 것을 알지 못했습니다. - CentOS 6.8 (OpenSSL 1.0.1e-fips 2013 년 2 월 11 일)에 버그가 있는지 확인할 수 있습니다.
- 또한
openssl version -d
는 기본 구성 디렉토리를 제공합니다. …
답변
"How to get openssl to use a cert without specifying it via -CAfile".
동일했습니다. 요구 사항. 로컬에서 " 신뢰 한 " CA 디렉토리를 사용하고 싶었습니다. 기본 Trust store
오염 결과를 원하지 않았습니다.
c_rehash
verify
명령을 호출하기 전에 도움말 페이지 : man verify
에서
:
rehash는 디렉터리를 스캔하고 각 " .pem ", " .crt ", " .cer " 또는 " .crl " 파일 지정된 디렉토리 목록을 작성하고 각 파일에 대한 심볼릭 링크를 만듭니다.
export CERTS=/Users/{path_to_your_certs} [path to openssl]/openssl/bin/c_rehash ${CERTS}
리프 인증서 확인
openssl verify -CApath ${CERTS} local_leaf.pem local_leaf.pem: OK
CERTS
.재해시 단계를 수행하지 않으면 오류 20 unable to get local issuer certificate
가 표시됩니다.
GTE_CyberTrust_Global_Root.pem
는 중간 CA입니까? 그렇다면 웹 서버가 사이트 인증서와 함께 중간 CA 인증서를 제공하지 못하는 것일 수 있습니다. 웹 서버의 이러한 단점으로 인해 일부 컴퓨터와의 호환성 문제가 발생할 수 있습니다. 반면GTE_CyberTrust_Global_Root.pem
가 최상위 루트 인증서 인 경우 기본적으로 작동합니다.openssl
가 최상위 루트 인증서로 구성되지 않았을 수 있습니까?google.com:443
를 사용해 보셨습니까?