WGET, 자체 서명 된 CERT 및 사용자 정의 HTTPS 서버
-
10-07-2019 - |
문제
여러 가지 이유로 간단한 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 번들을 추가하십시오.
제휴하지 않습니다 StackOverflow