我从哪个证书颁发机构获取 SSL 证书是否重要?
我想这真的取决于你的用户的性质。
99.9% 的用户在访问您的网站时只会看到浏览器没有给他们任何错误(假设您从一家在浏览器的证书存储中拥有 CA 证书的公司购买了证书)。
然而,这确实表明当前部署的 PKI 基础设施存在更大的问题:
任何已知的 CA 都可以为任何其他站点创建证书,并且浏览器将接受该证书,即使该站点的合法所有者已经拥有来自另一个 CA 的证书。
虽然这在某些方面是好的,因为站点运营商可以根据自己的选择更改 CA 供应商,这也意味着受感染的 CA 可用于为任意站点生成证书。将 CNNIC 的 CA 证书添加到 Mozilla(和其他)CA 列表时会出现此问题。
似乎对中国有一种与生俱来的不信任(可能与“长城防火墙”有关),但实际上,这确实意味着中国的任何用户在尝试使用加密连接到“颠覆性”网站时,都应该检查提供的证书未由 CNNIC CA 证书签名。
有一个方便的 Firefox 扩展 (Certificate Patrol) 可以监控各个站点提供的证书,并在证书因任何原因发生更改时向您发出警告。
是的,这很重要。您只能像信任证书颁发机构一样信任交易。例如,如果你有一个 DoD 签名的证书,那是非常值得信赖的。如果您有中华电信签署的证书,那么可能就没有那么多了。有时查看您的浏览器默认 CA 证书,并考虑您对这些方的信任程度。
我建议看一下这篇论文,以获得关于恶意 CA 如何真正对感知信任造成严重破坏的完整解释: Certified Lies: Detecting and Defeating Government Interception Attacks against SSL
实际上,您在哪里获得证书很重要。请记住,任何人都可以创建证书和签名,包括黑客。所以每个浏览器都有经过验证的公司列表,以便压缩伪造证书。所以你应该从威瑞信等国际认可的公司获得证书。
从一个角度来看,只要将 CA 的根证书加载到所有主要浏览器中,这并不重要。如果您拥有来自这些浏览器信任的 CA 的 SSL 证书,那么几乎所有用户都不会关心证书的颁发者。
例如,假设您正在构建一个内部应用程序,并且您的所有用户都是公司员工。您的公司运行一个仅限内部的 CA。您的 IT 部门在所有员工系统上安装贵公司的 CA 证书。因此,每当这些员工访问您的应用程序时,他们都会看到挂锁并知道它是安全的。
同样,对于您只使用自己的网站。你可以自签名,就可以了。
从另一个角度来看,你选择谁绝对重要。您肯定需要一个具有严格安全程序的 CA,原因如下:
- 您不希望他们(错误地或恶意地)向自称是您的其他人颁发证书。然后这个第三方可以在网络上冒充你,你和你的用户就完蛋了。
- 如果众所周知它们的安全性松懈,那么所有主要浏览器都会发布安全更新,从浏览器中删除其 CA 根证书。(参见DigiNotar作为最近(2011 年 9 月)的示例。)在这种情况下,您必须快速找到新的 CA 并在您的服务器上安装新的 SSL 证书,因为浏览器将不再信任您的旧 SSL 证书。