好的我确定这很明显,我在这里遗漏了一些非常基本的东西。我们正在向服务器发送http请求。为了证明我们是谁发送请求,我们附上证书。
此证书具有受信任的CA,因此服务器知道证书是真实的。
我没有得到的是我们对服务器说,好吧,来自Comodo的信任证书让我们说。精细。所以我发送了请求,它说我是'公司A',这是由Comodo认证的。
运行服务器的客户只想知道CA是谁,以便他们可以信任。说得通。但肯定证书中的其他内容需要检查以嵌入公司名称?否则,我可以为我自己的公司购买另一张证书,然后从Comodo获得该证书,该证书也将根据服务器有效。
请赐教!
由于 西蒙
答案 0 :(得分:0)
如果我理解正确,您就会询问网络浏览器上某人如何访问公司A'可以肯定它确实是公司A'而不是来自公司B'由相同的可信CA(Comodo)发布。
快速回答是浏览器 检查证书上的名称,而不仅仅是它是否信任颁发CA.证书中的“主题”字段是可分辨名称(DN),如下所示:
CN = www.google.com,O = Google Inc,L = Mountain View,S = California,C = US
浏览器可以检查CN(规范名称)是否与您在浏览器中输入的内容(https://www.google.com/)相匹配,以确保您位于正确的网站上。有时CN不匹配,但证书包括主题备用名称,其中包含匹配的名称。在任何一种情况下,证书都包含您尝试加载的网站,因此您可以验证它是该网站的正确证书。
此外还有许多其他检查(或可能):
*检查当前日期和时间是否在证书的有效期内
*检查证书是否未被撤销(使用CRL或OCSP)
*检查签名是否有效并由可信CA签名
*检查签名CA实际上是CA(CA证书中的密钥用法字段)
*检查证书本身的使用情况,确保它是服务器证书
*检查公钥是否足够强(例如,至少2048位RSA)
*检查签名算法是否足够强(例如,SHA256RSA与SHA1RSA)
*检查有效期是否足够短(例如,服务器为3年或更短)