检查浏览器的根证书,我发现几乎所有根 CA 都使用 SHA-1 或更低版本。
用于可信根证书的签名算法并不重要。 签名用于建立信任。根据定义,受信任的根证书是您基于出处隐式信任的证书(例如,它来自何处以及如何进入受信任的根存储区——通过操作系统/浏览器安装程序、组策略等)。受信任的根证书的签名永远不会针对签名者进行验证(当然,它们通常是自签名的)。相反,签名用于验证由尚未受信任的服务器动态传递给浏览器的不受信任的证书。
话虽这么说......可能值得为您的内部 CA 使用 SHA-2 签名证书,因为人们查看证书链并假设 SHA-1 不好,SHA-2 好。如果您使用 SHA-2,您将不必与问您这个问题的人打交道:)
1) 我应该在我的内部根 CA 上从 SHA-1 更改为 SHA-2 还是更改网站的证书就足够了?
无需将根证书更改为 SHA-2,但它可能有助于避免用户和审核员的问题。
我不会费心重新颁发现有证书;我将创建一个新的 SHA-2 根并将其用于所有未来的证书签名。这样一来,根的 SHA-1 版本将在未来几年随着现有证书到期而消失。
2) 今天,根 CA 在浏览器中使用 SHA-2 的影响是什么?有没有不支持 SHA-1 的浏览器?我们的一些客户仍然使用旧版本的 IE。
我假设您的意思是“浏览器 [尚未] 支持 SHA-2?” 是的,仍然有旧版本的浏览器不支持 SHA-2(漂亮的兼容性表),但是如果您的用户正在运行这些浏览器,他们应该出于一般原因被迫关闭它们,而不是因为您的根 CA。
3) 浏览器是否会停止信任使用 SHA-1 的根 CA?
由于我上面提到的“安全外观”问题,如果这种情况在几年后发生,我不会感到惊讶。但不会很快,因为再次从技术角度讲,浏览器不使用受信任根证书上的签名。