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中没有任何警告,我假设国家安全局/俄罗斯人/北韩不会像我的错误那样负责任……所以差异的原因是什么?

他们是不同的证书。 无论出于技术和pipe理的原因,Google都会使用来自多个不同根源的许多不同的SSL证书。

很可能你的两个testing会碰到两个不同的谷歌服务器 他们有很多服务器与各种负载平衡方法,所以请求不会总是去同一台服务器。

尝试通过连接到相同的IP地址而不是域来查看证书的两种方法可能会使它们都连接到相同的服务器,并显示相同的散列。

只要这两个证书都是有效的,不要显示任何警告,并来自知名的证书颁发机构,一切都很好。 完全不用担心。