SSL证书如何才能适用于某些客户端?

我的托pipe服务提供商最近重新发布并为我的域重新安装了一个SSL证书 ,之后他们让旧的证书失效。

我现在可以通过HTTPS再次浏览网站 ,我的主机也是如此,其他许多用户也是如此。

但是, 有些用户(至less有十几十个用户)仍然得到Your connection is not secure错误消息在不同的浏览器和平台上。 (诊断我无法复制的问题certificate是困难的。)

我知道不同的浏览器使用不同的证书颁发机构(CA)列表

  1. 为什么运行与我相同版本的Firefox的用户(OS X上的SEC_ERROR_UNKNOWN_ISSUER )如何得到SEC_ERROR_UNKNOWN_ISSUER错误(仅适用于我的网站)而我不是? 是什么使它成为可能? 所述用户清除了他的caching并重启了他的笔记本电脑

我在digicert.com上运行了一个SSL检查 。 结果是这样的:

SSL证书不受信任

证书不是由受信任的权威人士签名(检查Mozilla的根存储)。 如果您从可信机构购买了证书,则可能只需要安装一个或多个中间证书。 请联系您的证书提供商以获得有关为您的服务器平台执

  1. 如果出现SSL错误,我怎么能够连接到站点?

证书的证书链不完整。 安装新证书时,您的提供商很可能无法安装某些中间证书。

大多数情况下,这样的中间证书是由SSL授权机构提供的,为一些较旧的浏览器和操作系统提供支持。 这就是这个原因,虽然它适用于你,但它不适合你的一些客户。

检查SSL网站SSL问题的一个非常棒的工具是SSLlabs SSL服务器testing 。 正如你可以在上面的链接看到的,不仅是你在这里有一个链问题,而且用于创build你的证书的签名algorithm是一个弱的,你的networking服务器仍然是易受POODLE攻击 ,仍然支持RC4,这是也被认为是不安全的…

我不想对你的networking服务提供商说什么,但在你的位置,我会邮寄给他们,他们尽快解决所有这些问题,或改变到另一个提供商…

为了使证书成为可信任的,它必须由本身由您的浏览器/操作系统组合信任的实体签名,或者由其实体签名的实体签名。 这通常由签署中间CA的一个受信任根CA完成,中间CA签署您的证书。 这创build了一个链,就像这样:

  1. 您的计算机所信任的根CA以及标志
  2. 中间CA,哪个标志
  3. 您的证书只能通过链接返回到根CA而被信任。

这里的问题是中间CA证书。 为了确保每个人都可以validation链回到根CA,您的提供者应该在其服务器configuration中包含中间证书。 在这种情况下,他们没有。

它为什么对某些用户有效的原因是他们在自己的“信任存储”中拥有中间证书。 在这种情况下,他们会接受你的证书,因为他们已经信任中间人。 但是如果你的访问者有不同的操作系统/浏览器,他们没有中间的证书,所以他们需要从你的networking服务器获取 – 而你的networking服务器没有把它交出来,所以他们没有办法validation它。

如果您使用的是HTTP公钥固定,并且您的提供商为您提供了新的证书,则公钥可能已经更改。 这些密钥在您指定的时间段内保存在客户端的浏览器中。