我将对以下各项使用DigiCert多域证书:
www.example.com
example.com
sub1.example.com
www.sub1.example.com
sub2.example.com
www.sub2.example.com
etc...
我正在使用IIS URL重写来删除www。来自所有领域的信息,这给了我:
example.com
sub1.example.com
sub2.example.com
我还使用URL重写将所有http://路由到https://。
我的问题:
如果可能的话,我想消除所有的www。证书。
已编辑
为了完整起见,我添加了两个正在使用的重定向。
<rewrite>
<rules>
<rule name="Remove www" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
</conditions>
<action type="Redirect" url="https://{C:1}/{R:0}" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="Redirect to http" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" negate="false" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
</rule>
</rules>
</rewrite>
谢谢...
更新:不良副作用
经过大量测试后,我发现删除www后会产生一些不良影响。来自网址。在某些情况下,用户将看到有关该站点不安全的安全警告,从我们的角度来看,这确实很糟糕。
用户可能输入的URL:
example.com,www.example.com,http://或https://和example.com或www.example.com
所需的重写URL:
https:// + example.com
浏览器之间的差异
在IE,Edge,Safari和Firefox上,https:// + www.example.com/ URL不会重写为所需的URL,而Chrome会重写BUT。考虑了一段时间后,由于输入了硬编码的HTTPS URL,我不确定为什么Chrome允许HTTPS重写。
Chrome浏览器会将https:// + www.example.com/路由到https:// + example.com。没有证书失败显示给用户。
IE缓存损坏?
在IE上输入URL https:// + www.example.com之后,似乎破坏了历史记录缓存。
如果在输入上一个URL后输入www.example.com,浏览器将路由到https:// + www.example.com/。这会产生BAD证书消息,这不是很好。
如果您重新输入www.mydomain.com,则IE可以关闭并重新打开,并且异常情况仍会继续。
如果我手动清除错误的https:// + www.example.com URL的缓存,然后输入www.example.com,则IE会路由到https:// + example.com,这是理想的结果。
Safari临时缓存损坏?
对于与我用于IE相同的测试条件,我能够在MAC Safari上演示类似的故障,但是Safari在导航到其他URL并返回或关闭/重新打开浏览器后恢复了。
我们使用模型的结论
消除www。不是一个好的选择。
TLS会话在进行任何处理(包括重写)之前就已建立。因此,为避免浏览器错误,您应确保证书包含希望客户端在其浏览器中输入的所有DNS名称的主题备用名称条目。这包括www的。
唯一的例外是从http://www.example.com(无TLS)重定向到https://example.com(TLS)的情况。在这种情况下,重写将通过http进行,因此不涉及TLS和证书。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句