Azure虚拟机IIS多站点SSL证书异常问题咨询
问题排查与解决方案
针对Azure VM上IIS多网站SNI配置后外部访问证书错误的问题,可按以下步骤逐一排查:
确认Azure网络层配置
- 检查VM的公共IP SKU:确保是Standard SKU,Basic SKU的公共IP在部分场景下可能影响SNI流量的正确转发。
- 验证NSG规则:确认网络安全组的入站规则已正确放行443端口流量,且未对主机头做过滤或修改。
- 排查中间层组件:如果VM前端有Azure Application Gateway、CDN等代理服务,需确认这些服务已开启SNI支持,并正确将请求的主机头转发至后端IIS。
校验IIS的SNI绑定配置
- 打开IIS管理器,右键第二个网站选择「编辑绑定」,确认HTTPS绑定的Require Server Name Indication已勾选,且绑定的FQDN和证书完全匹配
secondproduct.companyname.com。 - 在服务器上执行命令
netsh http show sslcert ipport=0.0.0.0:443,查看SSL绑定记录:- 需存在两条独立记录,分别对应两个FQDN;
- 确认
secondproduct.companyname.com对应的记录中SniEnabled值为Yes,证书哈希与目标证书一致。
- 打开IIS管理器,右键第二个网站选择「编辑绑定」,确认HTTPS绑定的Require Server Name Indication已勾选,且绑定的FQDN和证书完全匹配
验证DNS与外部请求的主机头传递
- 在外部网络执行
nslookup secondproduct.companyname.com,确认解析结果为VM的公共IP,与默认网站的解析IP一致。 - 用
curl命令测试(替换<公共IP>为实际地址):
查看返回的证书信息,若仍显示默认网站证书,说明请求的主机头未正确传递至IIS,需排查网络链路中的代理或防火墙是否修改了请求头。curl -v -H "Host: secondproduct.companyname.com" https://<公共IP>
- 在外部网络执行
清除本地缓存与兼容性检查
- 清除浏览器的SSL缓存和DNS缓存,避免旧缓存导致的证书显示异常。
- 测试不同浏览器或设备,排除客户端SNI兼容性问题(现代浏览器均支持SNI,但需确认未启用特殊代理或安全软件拦截请求)。
对比生产与非生产环境的差异
- 检查两边的Windows Server版本、IIS版本是否一致,旧版本系统可能存在SNI支持的兼容性问题。
- 确认生产环境的Windows Defender Firewall或第三方防火墙规则,未对HTTPS请求的主机头做拦截或修改。
- 验证生产环境的证书存储:确保
secondproduct.companyname.com的证书安装在本地计算机→个人存储中,无过期、吊销等异常情况。
内容的提问来源于stack exchange,提问作者Visha
相关产品推荐
相关产品推荐

