私の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.com
IPアドレスではない)に発行されます。
したがって、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