没有 SSL 的安全连接错误

没有 SSL 的安全连接错误

有几个用户在尝试访问我的网站时遇到有关服务器安全连接的消息。

  • 我们在 Mac(带有 Safari 的 iPhone、iPad 和 Macbook)和 Windows(IE 和 Chrome)上都有这个功能。

  • 不同城镇的多家 ISP 都出现了此类情况。

  • 该网站地址是子域名,且未安装 SSL 证书 - 无法通过 访问https://

  • 主域确实有 SSL 证书(不是通配符),检查时没有显示任何错误。

我无法追踪到底发生了什么。我怀疑问题出在我们这边,因为有这么多人使用不同的浏览器/设备。我甚至不知道接下来要问什么问题,或者如何隔离问题。我也无法在本地复制这个问题,这没有帮助。

我该如何解决这个问题?

编辑:

这是来自 iPhone 用户的截图。我之前没有把它放进去,因为我认为它没有提供任何有用的信息。

iPhone 屏幕截图

答案1

如果您的主域发送Strict-Transport-Security带有标志的响应标头,则客户端可能会发生这种情况includeSubDomains

示例标题:

Strict-Transport-Security: max-age=31536000; includeSubDomains

如果此标头与 includeSubDomains 一起存在,则稍后访问您的子域的兼容客户端会将所有 HTTP 引用更改为 HTTPS,并尝试通过 https 访问子域。

不幸的是,如果max-age标头中的值设置得非常高,客户端会记住这个值并继续尝试通过 HTTPS 访问您的网站,即使您稍后删除了该标头。从上面的示例中,客户端会记住您在访问网站和子域时需要 HTTPS 一年。如果是这种情况,并且大量用户遇到此问题,您可能需要为任何之前不安全的子域安装 SSL 证书。

来自 OWASP:

设置过于严格的 STS 政策时要谨慎。仅应在组织内给定域名的所有站点都需要 SSL 的环境中包括子域。应仔细考虑最大使用期限限制,因为如果您放宽政策,不经常访问的访问者可能会发现您的网站无法访问。

在启用 includeSubDomains 之前,还请考虑 CDN、电子邮件服务或其他第三方服务的任何现有 DNS CNAME 记录的影响。由于 includeSubDomains 会强制此类 CNAME 子域为 https://,因此浏览器可能会抛出域不匹配错误,由于 HSTS 的浏览器缓存特性,这种错误很难逆转。

参考:

维基百科 - HTTP 严格传输安全

OWASP——HTTP 严格传输安全

相关内容