我最近在工作中遇到了运行 Apple TV 和 Netflix 的问题。在与他们的一名支持技术人员一起对我们的 SonicWall 防火墙进行一番调查后,我们发现该服务被 Netflix 正在传递的证书阻止。显然,该证书没有通过“检测由不受信任的 CA 签名的证书”,因此他们使用自签名证书,或者他们的证书名称错误,或者其他原因。
有人见过 Netflix 签署自己的证书吗?一家上市公司这样做似乎很奇怪?技术人员说证书上缺少通用名称,所以可能只是配置错误。听听你的想法会很有趣,我关闭了检查,它运行正常,但从来没有遇到过大公司不合规证书的问题。有趣的是,这个问题并没有出现在我们办公室运行 Netflix 的浏览器上。
好吧,我重建了来回发送的证书,并且它们不是自签名的...但是它们有什么问题吗?所以我的新问题是如何检查证书是好是坏?
https://drive.google.com/open?id=0B0whF2PJIIWcSVg4MEJrc3liM1U https://drive.google.com/open?id=0B0whF2PJIIWcN2R0RHBYT2FGRm8
答案1
所以我的新问题是如何检查证书是好是坏?
我会检查openssl s_client
:
$ openssl s_client -connect netflix.com:443 < /dev/null
CONNECTED(00000003)
depth=2 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "(c) 1999 VeriSign, Inc. - For authorized use only", CN = VeriSign Class 3 Public Primary Certification Authority - G3
verify return:1
depth=1 C = US, O = Symantec Corporation, OU = Symantec Trust Network, CN = Symantec Class 3 Secure Server CA - G4
verify return:1
depth=0 C = US, ST = California, L = los gatos, O = "Netflix, Inc.", OU = Operations, CN = www.netflix.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=los gatos/O=Netflix, Inc./OU=Operations/CN=www.netflix.com
i:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4
1 s:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4
i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 1999 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G3
这基本上表明,从 openssl 的角度来看(并假设您拥有“典型”的 ca 证书集,即由您的操作系统版本提取的证书ca-certificates-mozilla
),Netflix 证书是有效的。
但请注意,赛门铁克存在于信任链中,目前关于其证书有效性的一些讨论。
所以在这种情况下,证书的好坏也取决于你目前认为哪些 CA 值得信赖。