我希望能夠確定遠程域的TLS/SSL證書是否來自命令行的'可信任'。確定命令行中的TLS/SSL證書是否「受信任」?
下面是一個例子的OpenSSL我用了幾個星期播放,在這裏我使用OpenSSL取得證書,然後將管它OpenSSL的「驗證」命令。我認爲'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'verify'命令不輸出'trusted'或'not trusted'或其他我們可以從中扣除信息的東西。
另一種方式我想這樣做的,是通過使用無頭瀏覽器(如PhantomJS)和解析它們返回的任何錯誤。事實證明,PhantomJS只是錯誤,但沒有提供任何細節,所以不能使用,因爲錯誤可能是由其他原因造成的。
我不認爲這將很難找到證書是否信任或不從命令行,而不必解析和檢查所有的數據,使證書信任我自己,我不認爲將是明智的。
是否有一個庫或其他方式我可以告訴如果從命令行信任遠程域的證書?
這看起來應該可以工作,我會做一些測試以查看它的縮放比例。非常感謝您的回覆。 – ethicalhack3r
如果端點不是HTTPS,該怎麼辦? –