リモート ドメインの TLS/SSL 証明書が「信頼できる」かどうかをコマンド ラインから判断できるようにしたいと考えています。
これは、私が数週間前に遊んでいた openssl の例です。ここでは、openssl を使用して証明書を取得し、それを openssl の「verify」コマンドにパイプします。「verify」コマンドは証明書を検証すると思いましたが、「verify」コマンドは証明書チェーンを検証するだけであると理解しています(私はそう思います)。(cdn.pubnub.com は、使用例として Twitter で簡単に検索して見つけたドメインです)
echo "GET /" | openssl s_client -connect cdn.pubnub.com:443 | openssl x509 -text | openssl verify
cdn.pubnub.comドメイン (執筆時点)からわかるように、ブラウザー (少なくとも Chrome) は証明書を信頼していません (証明書のドメインが一致しないため)。ただし、openssl の「検証」コマンドは、「信頼できる」または「信頼できない」など、その情報を推測できるものを出力しません。
私が考えたもう 1 つの方法は、ヘッドレス ブラウザー ( PhantomJSなど) を使用し、返されるエラーを解析することです。PhantomJS は単にエラーであることが判明しましたが、詳細は何も提供していないため、エラーが別の原因で発生した可能性があるため、これを使用することはできません。
証明書が信頼されているかどうかをコマンドラインから確認するのがこれほど難しいとは思いませんでした。証明書を信頼するすべてのデータを解析してチェックする必要はありません。
コマンドラインからリモートドメインの証明書が信頼されているかどうかを確認できるライブラリまたはその他の方法はありますか?