-CAfile (한국어)

I “m using this command :

작동합니다. CAfile을 지정하지 않으면 코드 20이 생성됩니다. 인증서는 /etc/ssl/certs/usr/lib/ssl/certs -> /etc/ssl/certs 또한 ca-certificates.crt

Openssl이 내 인증서를 찾을 수 있는지 여부와 수락하도록하는 방법을 결정하는 내용에도 포함되어 있습니다. 이 인증서를 명시 적으로 지정하지 않았나요?

댓글

  • GTE_CyberTrust_Global_Root.pem는 중간 CA입니까? 그렇다면 웹 서버가 사이트 인증서와 함께 중간 CA 인증서를 제공하지 못하는 것일 수 있습니다. 웹 서버의 이러한 단점으로 인해 일부 컴퓨터와의 호환성 문제가 발생할 수 있습니다. 반면 GTE_CyberTrust_Global_Root.pem가 최상위 루트 인증서 인 경우 기본적으로 작동합니다.
  • @GeorgeBailey 감사합니다. 중급입니다. 위치를 공유하지 않을 실제 이유가 없습니다. bigfishgames-a.akamaihd.net:443 ' 웹 사람들에게이 문제를 해결해달라고 요청하는 경우 무엇을 묻겠습니까? 답변을 자유롭게 작성하십시오 (예 : " 클라이언트에서 할 수있는 작업은 없습니다. 서버는 X "를 수행해야합니다).
  • ' 이상합니다. / etc / ssl / certs 및 ca-certificates.crt에 포함 된 후에는 작동 할 것으로 예상했을 것입니다.
  • 글쎄요 ' 아직 서버가 문제입니다. 서버가 중간 CA 를 제공하고 있으며 SSLLabs는 CyberTrust를 최상위 루트로 취급합니다. CyberTrust가 중개자에 대해 틀릴 수도 있지만 맞을 수도 있습니다. 잘 모르겠습니다. ' 선호하는 브라우저 및 / 또는 SSLLabs 에서 인증서 체인 / 경로를 확인하세요. openssl가 최상위 루트 인증서로 구성되지 않았을 수 있습니까? google.com:443를 사용해 보셨습니까?
  • google.com에서 동일한 동작

답변

-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가 표시됩니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다