문제

여러 가지 이유로 간단한 HTTP 서버를 만들고 OpenSSL을 통해 SSL 지원을 추가했습니다. 자체 서명 된 인증서를 사용하고 있습니다. IE, Firefox 및 Chrome은 신뢰할 수있는 루트 CA에 CA를 추가하는 한 콘텐츠를 행복하게로드합니다.

그러나 wget (사용될 때도 --no-check-certificate 깃발) 보고서 :

OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

다음을 사용하여 내 서버에서 OpenSSL 클라이언트를 실행하는 경우

openssl s_client -connect dnvista:82 -debug

다시 돌아옵니다 : 오류 확인 : NUM = 19 : 인증 체인의 자체 서명 인증서 검증 반환 : 0 및 그 다음

5852:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:.\ssl\s3_pkt.c:1060:SSL alert number 40
5852:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:.\ssl\s23_lib.c:188:

WGET 및 OpenSSL 클라이언트는 단순히 자체 서명 된 인증서에서 작동하지 않습니까?

업데이트:

나중에 오는 사람이라면이 코드를 추가하면 OpenSSL 클라이언트 및 Firefox가 도움이되었습니다.

EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
SSL_CTX_set_tmp_ecdh(ctx, ecdh);
EC_KEY_free(ecdh);
도움이 되었습니까?

해결책

나는 남자 페이지를 확인했다 wget, 그리고 --no-check-certificate 에만 영향을 미치는 것 같습니다 서버 인증서. 자체 서명 된 인증서를 로컬로 유효한 CA 인증서로 지정해야합니다.

이렇게하려면 인증서를 지정하십시오 --ca-certificate=... 안에 wget 그리고 -CAfile 에서 s_client 사례.

다른 팁

여러 가지 방법 중 하나로 신뢰할 수있는 루트 CA 인증서를 OpenSSL에 설치할 수도 있습니다.

  • CA 인증서를/etc/pki/tls/certs 또는 동등한 디렉토리에 넣은 다음 인증서 해시를 기반으로 링크를 만듭니다. 보다 http://gagravarr.org/writing/openssl-certs.shtml#ca-openssl 자세한 내용은.
  • CA 인증서를 /etc/pki/tls/certs/ca-bundle.crt, /etc/pki/tls/cert.pem에 추가하거나 동등한 CA 번들을 추가하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top