Openssl
Chrome 的 SHA-1 是否應該與 OpenSSL 相匹配?
如果我比較Chrome中https://0000.jp的證書顯示的 SHA-1 :
79 72 28 12 74 83 85 DE 3C B0 DE E7 A4 C3 14 BE B4 93 79 6E
使用 OpenSSL 提供的內容:
$ echo -n | openssl s_client -connect 0000.jp:443 2>/dev/null | openssl x509 -noout -fingerprint SHA1 Fingerprint=79:72:28:12:74:83:85:DE:3C:B0:DE:E7:A4:C3:14:BE:B4:93:79:6E
然後我得到相同的值。
如果我對https://google.co.uk執行相同操作,那麼 Chrome 會顯示:
06 4B 11 0D 63 4A 83 E2 6B 1A 12 19 EC 04 46 F3 7C 3A 01 D7
而 OpenSSL 顯示:
$ echo -n | openssl s_client -connect google.co.uk:443 2>/dev/null | openssl x509 -noout -fingerprint SHA1 Fingerprint=3F:6D:D9:AB:60:92:1E:EE:D3:4C:C7:36:04:49:B2:FA:F9:E5:2D:92
Chrome 中沒有警告,我假設 NSA/俄羅斯人/北韓不像我的錯誤那樣負責……那麼差異的原因是什麼?
它們是不同的證書。無論出於何種技術和管理原因,Google 都使用了來自多個不同根的大量不同 SSL 證書。
您的兩個測試很可能會命中兩個不同的Google伺服器。他們有很多具有各種負載平衡方法的伺服器,因此請求並不總是發送到同一台伺服器。
嘗試通過連接到相同的 IP 地址而不是域來查看證書的兩種方法可能會使它們都連接到相同的伺服器並顯示相同的雜湊值。
只要兩個證書都有效,不顯示任何警告,並且來自知名的證書頒發機構,一切都很好。沒什麼可擔心的。