wget、自己署名証明書、およびカスタム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/othersをご覧ください。詳細については、shtml#ca-openssl を参照してください。
- CA証明書を/etc/pki/tls/certs/ca-bundle.crt、/etc/pki/tls/cert.pem、または同等のCAバンドルに追加します。
所属していません StackOverflow