![SSL証明書なし](https://rvso.com/image/38680/SSL%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AA%E3%81%97.png)
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)
しかし、何も変わりません。
wget
SSL 証明書が見つからず、取得方法が分からないと思います。
証明書情報を入手するにはどうすればよいですか?
答え1
www.example.com
通常、SSL 証明書はIP アドレスではなく ホスト名に対して発行されます。
そのため、IP アドレスを使用すると、アクセスしている URL と証明書が発行されたホスト名が一致しなくなります。
次に、man ページによると wget に必要なため、Firefox の CA ディレクトリは適切ではない可能性があります。
--ca-directory=ディレクトリPEM 形式の CA 証明書を含むディレクトリを指定します。各ファイルには 1 つの CA 証明書が含まれており、ファイル名は証明書から派生したハッシュ値に基づいています。...
wget は openssl ライブラリを使用するため、SSL 証明書の有効期限を確認するクエリなど、証明書のステータスを確認するためのより詳細なユーティリティになる可能性があります。
echo "GET /" | openssl s_client -connect servername:port | openssl x509 -noout -dates