无SSL安全连接错误

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

我很难追查到底发生了什么。 我怀疑这个问题必须由来自不同浏览器/设备的人员来完成。 我甚至不确定接下来要问什么问题或如何分离问题。 我也无法在本地复制问题,这没有帮助。

我如何解决这个问题?

编辑:

这里是iPhone用户的截图。 我之前没有提到,因为我没有想到它有什么用处。

iphone截图

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

示例标题:

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

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

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

从OWASP:

设置过分严格的STS策略时要小心。 包括子域名只能用于您的组织内所有站点对于给定域名需要ssl的环境。 应该仔细考虑最大年龄限制,因为如果您放松您的保单,偶尔访问者可能会发现您的网站无法访问。

在启用includeSubDomains之前,请考虑任何现有DNS CNAMElogging对CDN,电子邮件服务或其他第三方服务的影响。 由于includeSubDomains会强制这样的CNAME子域名https://很可能浏览器会抛出一个域不匹配的错误,由于HSTS的浏览器caching特性,这很难反转。

参考文献:

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

OWASP – HTTP严格的传输安全