设为首页 收藏本站
查看: 1125|回复: 0

[经验分享] 如何在IIS中设置通配证书(wildcard certificate)来避免证书匹配错误

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-13 00:17:20 | 显示全部楼层 |阅读模式
  网上有很多文章介绍在某些情况下通配证书的必要性,但是如何在IIS中配置通配证书却少有人提及,因为对于通配证书的需求普遍存在,我们在这篇文章中来介绍一下如何在IIS中配置通配证书来避免证书匹配错误。

背景
  假设有这样一个场景,我们有多个站点(例如site1.marei.com,site2.marei.com和site3.marei.com)绑定到同一个IP:PORT,并区分不同的主机头。我们为每一个SSL站点申请并安装了证书。在浏览网站时,用户仍看到证书不匹配的错误。

问题原因
  当一个https的请求到达IIS服务器时,https请求为加密状态,需要拿到相应的服务器证书解密请求。由于每个站点对应的证书不同,服务器需要通过请求中不同的主机头来判断需要用哪个证书解密,然而主机头作为请求的一部分也被加密。最终IIS只好使用第一个绑定到该IP:PORT的站点证书解密请求,从而有可能造成对于其他站点的请求失败而报错。

解决方案
  对于该问题有多种解决方案
1. 第一种解决方案将每个https站点绑定到不同的端口。但是这样的话客户端浏览网页时必须手动指定端口,例如https://site.domain.com:444
2. 第二种解决方案是为每个站点分配一个独立的ip,这样冲突就解决了,甚至主机头也不用添加了。
3. 第三种解决方案是使用通配证书。我们采用通配证书颁发给*.domain.com,对于我们的示例中,应该采用颁发给*.marei.com的证书,这样任何访问该domain的请求均可以通过该证书解密,证书匹配错误也就不复存在了。
4. 第四种解决方案是升级为IIS8,IIS8中添加的对于SNI(Server Name Indication)的支持,服务器可以通请求中提取出相应的主机头从而找到相应的证书。
http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-server-name-indication-sni-ssl-scalability

如何在IIS7中配置通配证书
  1. 将证书安装到IIS7服务器
2. 在IIS管理器中,设置443绑定,site1.marei.com在下面的示例中的主机名。
DSC0000.png
  3. 通过管理员打开命令提示符具,转到%SYSTEMDRIVE%\WINDOWS\system32\inetsrv目录
执行以下命令来添加对于其他站点的绑定



appcmd set site /site.name:"<IIS站点名称>" /+bindings.[protocol='https',bindingInformation='<IP>:443:<主机头>']
DSC0001.png
  4. 在IIS中,可以查看绑定,但注意不能做任何改动,否则绑定设置将被重置。任何更改都需要通过APPCMD
DSC0002.png
5. 测试创建的https://网站,可以看到网站可以成功访问,证书错误不再出现。
DSC0003.png
  
  
希望以上步骤对你有所帮助。
  
Matthew Reid

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-98108-1-1.html 上篇帖子: C# 玩转计算机系列(二)-操作IIS服务 下篇帖子: WCF与IIS集成Windows身份验证的矛盾
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表