Azure Web App www转非www HTTPS访问出现证书错误,求排查原因
问题根源与解决办法:HTTPS www子域名连接私密错误
嘿,我来帮你拆解这个问题的核心原因和对应的解决步骤:
为什么会出现“连接不是私密连接”?
- 证书不匹配是关键:你只给主域名
domain.co.uk绑定了SSL证书,但当用户访问https://www.domain.co.uk时,浏览器需要验证这个www子域名的SSL证书——而你的Azure环境里根本没有为www.domain.co.uk部署有效的证书,浏览器自然会判定这个连接不安全,抛出私密连接错误。 - TLS握手优先于应用层规则:你的web.config重定向规则是在网站应用层面生效的,但HTTPS的证书验证是在TLS握手阶段完成的,这一步发生在请求到达你的重定向规则之前。也就是说,证书验证不通过的话,请求根本到不了你的应用,重定向规则也就没机会触发。
怎么解决这个问题?
1. 为www子域名配置SSL证书
- 如果你手里有通配符证书(比如
*.domain.co.uk),直接在Azure的App Service中把这个证书绑定到www.domain.co.uk即可; - 如果是单域名证书,你需要申请一张包含
domain.co.uk和www.domain.co.uk的SAN多域名证书,然后在Azure的自定义域名设置里,将该证书绑定到www.domain.co.uk,确保HTTPS访问时能通过证书验证。
2. 确认Azure自定义域名的HTTPS状态
登录Azure门户,找到你的App Service,进入「自定义域名」页面:
- 确保
www.domain.co.uk已经被添加为自定义域名; - 检查该域名对应的HTTPS状态是否为「已启用」,并且绑定了正确的SSL证书。
3. 优化重定向规则(可选)
等证书问题解决后,你可以稍微调整web.config的规则,确保覆盖所有HTTP和HTTPS的www请求,让重定向更全面:
<rule name="NonWwwRedirect" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAny"> <add input="{HTTP_HOST}" pattern="^www\.domain\.co\.uk$" /> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://domain.co.uk/{R:1}" redirectType="Permanent" /> </rule>
内容的提问来源于stack exchange,提问作者Vinyl Warmth
相关产品推荐
相关产品推荐

