証明書なしのSSL

証明書なしのSSL

私のWebサイトクライアントのSSLステータスを確認してエラーを返すbashスクリプトを作成しようとしています。ただし、すべてのIPに対してwget https://$ip:$port次のエラーが発生します。

ERROR: The certificate of 1.2.3.4 is not trusted
ERROR: The certificate of 1.2.3.4 hasn't got a know issuer

Firefoxを使用しようとすると、各IPの証明書があります。だから私はFirefox CAを次のリポジトリにダンプしてみました。

wget http://$ip:$port --ca-directory=(directory of CA from Firefox)

しかし、それは何も変えません。

SSL証明書が見つからず、wget証明書を取得する方法がわかりません。

証明書情報を取得するには?

答え1

通常、SSL証明書はホスト名(たとえばwww.example.comIPアドレスではない)に発行されます。
したがって、IPアドレスを使用するときに訪問したURLと証明書を発行したホスト名は一致しません。

第二に、wgetのマニュアルページによると、FirefoxのCAディレクトリは適切ではないかもしれません。

--ca-directory=ディレクトリPEM形式のCA証明書を含むディレクトリを指定します。各ファイルにはCA証明書が含まれており、ファイル名は証明書から派生したハッシュ値に基づいています。 ...

私の考えでは、wgetはopensslライブラリを使用しているので、クエリでSSL証明書の有効期限を決定するなど、証明書の状態を確認するためのより詳細なユーティリティになることができます。

 echo "GET /" | openssl s_client -connect servername:port  | openssl x509 -noout -dates

関連情報