web-dev-qa-db-ja.com

Wget、自己署名証明書、および--no-check-certificateが機能しない

私は最近、nginxウェブサーバーの1つに自己署名SSL証明書をインストールしました。 --no-check-certificateでファイルをwgetしようとすると、以下のエラーが表示されます。ブラウザでサイトにアクセスできます。ブラウザは自己署名されていることを認識し、証明書にはすべての正しい情報が表示されます。ローカルで証明書を信頼する方法を見つけなければならないというメッセージに基づいているようですが、それは--no-check-certificateの目的に反していませんか?

$ wget https://www.example.com/index.html --no-check-certificate
--2015-02-20 14:13:58--  https://www.example.com/index.html
Resolving example.com... 192.0.2.1
Connecting to example.com|192.0.2.1|:443... connected.
WARNING: cannot verify example.com’s certificate, issued by “/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA”:
  Unable to locally verify the issuer’s authority.
WARNING: no certificate subject alternative name matches
    requested Host name “example.com”.
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Retrying.

どんなアイデアでも大歓迎です。

5
Minelr G

wgetのエラー出力とコマンドラインを見ると、ここでの問題はクライアント側の証明書の検証ではありません。サーバーマシンが接続を拒否しているようです。 wget必要なクライアント証明書がサーバーに提示されていない(他のブラウザーに証明書があるかどうかを確認してください)、この特定のユーザーエージェントが拒否されたなどが原因である可能性があります。

サーバーのログを確認したいのですが。

2
sam_pan_mariusz

いくつかのデバッグを追加することができます:サーバーとクライアントのヘッダーの-Sと-d。

tcpdumpの方が優れており、ストーリー全体を提供しますが、次善の策は、完全なパケットペイロードのないヘッダーです。

http://www.gnu.org/software/wget/manual/wget.html

0
jouell