さまざまな理由で、単純な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:証明書チェーンの自己署名証明書はreturn: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);