通配符SSL子域转发

时间:2014-07-19 19:27:09

标签: php apache .htaccess mod-rewrite ssl

我的网站存在问题。我有一个Web服务,当用户创建帐户时,他们会获得自己的子域名(例如:john.example.com)

一切都按预期完美运行,我有一个通配符SSL证书,可以在以下情况下正常工作:

https://john.example.com/

BUT

如果用户输入www.john.example.com,则Chrome会停止与该网站的连接,并显示SSL错误说明:

  

无法连接到真实的www.john.example.com

     

目前正在干扰您的安全连接   www.john.example.com。

     

尝试在几分钟内或切换到新页面后重新加载此页面   网络。如果您最近已连接到新的Wi-Fi网络,请完成   在重新加载之前登录。

     

如果您现在访问www.john.example.com,您可能会分享   与攻击者的私人信息。为了保护您的隐私,Chrome   在它可以与之建立安全连接之前不会加载页面   真正的www.john.example.com。

这只发生在chrome中。如果我在Firefox或IE中访问URL www.john.example.com,则连接完成,htaccess会将用户转发到https://john.example.com,但Chrome不会给服务器提供机会。

如何为用户解决此问题?

我是否必须为www。*。example.com购买另一个通配符SSL证书?

2 个答案:

答案 0 :(得分:2)

这是通配符SSL证书的固有限制 - 像*中的*.example.com这样的通配符组件只能替换单个主机名组件(如john),而不能替换多个级别(如www.john)。您需要构建自己的网站,使其不会使用www链接到这些子域名;或者,如果必须的话,它是在没有HTTPS的情况下这样做的。

您很可能无法获得对这些子域有效的通配符证书。 SSL CA很少愿意签署您正在考虑的异常通配符证书(www.*.example.com)。

答案 1 :(得分:0)

  

我是否必须为www。*。example.com购买另一个通配符SSL证书?

即使您能够购买此类证书,浏览器也不会接受它。 通配符仅允许在最左侧的标签中,请参阅RFC6125第6.4.3节。这意味着,没有www.*.example.com,没有*.*.example.com,只有*.site.example.com