windows-server-2008-r2 – 在IIS 7.5上一次替换多个站点上的通
我有3个网站:aaa.my-domain.com,bbb.my-domain.com和ccc.my-domain.com所有在IIS 7.5上使用单个通配符证书* .my-domain.com
Windows Server 2008R2 64位.该证书在一个月内到期,我的服务器上准备好了新的通配符证书* .my-domain.com.
我希望所有这些域都使用新的通配符证书,而不会出现明显的停机时间. 我尝试通过UI开始替换aaa.my-domain.com的证书: 但是当我按OK时,我收到以下错误:
当我单击是时,我收到以下消息:
此消息告诉我https://bbb.my-domain.com和https://ccc.my-domain.com将无法使用.至少在我为这两个域名替换证书之前,我会有停机时间,对吧? 我当时认为必须有一种更聪明的方法.可能通过命令行一次替换所有网站的新通配符证书.我在网上找不到任何关于如何做到这一点的资源.有任何想法吗? 与通配符和绑定相关的站点: > http://www.diaryofaninja.com/blog/2010/09/01/binding-multiple-domains-to-a-wildcard-ssl-on-a-single-ip-in-iis-75 与命令行绑定证书相关的站点: > IIS7 add certificate to site from command line
答案的背景是IIS 7实际上并不关心证书绑定. IIS 7仅将网站绑定到一个或多个套接字.每个套接字都是IP端口的组合.资料来源:
IIS7 add certificate to site from command line
因此,我们想要做的是在OS层上进行证书重新绑定.操作系统层控制SSL部分,因此您使用netsh将证书与特定套接字关联.这是通过netsh使用netsh http add sslcert完成的. 当我们将(新)证书绑定到套接字(ip端口)时,使用该套接字的所有站点都将使用新证书. 将证书绑定到套接字的命令是: 如何 本部分介绍了如何逐步进行.它假设您有一些网站(aaa.my-domain.com,bbb.my-domain.com)运行即将过期的* .my-domain.com证书.您已经拥有一个已安装在服务器上但尚未应用于IIS上的网站的新证书. 首先,我们需要找出两件事.您的新证书和appid的certhash. > certhash指定证书的SHA哈希.此哈希长度为20个字节,并指定为十六进制字符串. 找到certhash 执行certutil命令以获取计算机上的所有证书: certutil -store我的 我不需要所有信息,所以我这样做: certutil -store我的| findstr / R“sha1 my-domain.com ====” 在输出中,您应该在服务器上找到新证书: ================证书5 ================ 1234567890123456789012345678901234567890是我们正在寻找的certhash.它是没有空格的Cert Hash(sha1). 找到appid 让我们从looking at all certificate-socket bindings开始: netsh http显示sslcert 或者特别是一个插座 netsh http show sslcert ipport = 10.100.0.12:443 输出: SSL Certificate bindings: ---------------------- IP:port : 10.100.0.12:443 Certificate Hash : 2222222222222222222222222222222222222222 Application ID : {12345678-1234-1234-1234-123456789012} Certificate Store Name : MY Verify Client Certificate Revocation : Enabled Verify Revocation Using Cached Client Certificate Only : Disabled Usage Check : Enabled Revocation Freshness Time : 0 URL Retrieval Timeout : 0 Ctl Identifier : (null) Ctl Store Name : (null) DS Mapper Usage : Disabled Negotiate Client Certificate : Disabled {12345678-1234-1234-1234-123456789012}是我们正在寻找的appid.它是IIS本身的应用程序ID.在这里你看到套接字10.100.0.12:443目前仍然绑定到旧证书(Hash 222221111 …) 将(新)证书绑定到套接字 打开命令提示符并以管理员身份运行它.如果您不以管理员身份运行它,您将收到如下错误:“请求的操作需要提升(以管理员身份运行).” 首先使用此命令删除当前的证书套接字绑定 netsh http delete sslcert ipport = 10.100.0.12:443 你应该得到: SSL证书已成功删除 然后使用此命令(找到here)使用此命令添加新的证书套接字绑定以及之前找到的appid和certhash(不带空格) netsh http add sslcert ipport = 10.100.0.12:443 certhash = 1234567890123456789012345678901234567890 appid = {12345678-1234-1234-1234-123456789012} 你应该得到: SSL证书已成功添加 DONE.您刚刚更换了绑定到此IP端口(套接字)的所有网站的证书. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-7 – 在计划任务中由UAC阻止的exe.exe名称
- 为win32 / C阻塞线程生产者/消费者的队列
- windows – 启动应用程序后将控制权返回给cmd.exe
- windows-server-2008-r2 – SAN重建后无法销毁Windows 2008
- windows – 如何自动解除阻止下载?
- windows-server-2008 – 在Windows 2008服务器上禁用UAC是个
- windows – Html5 Canvas:旋转的文字在Google Chrome上看起
- IIS 7.5为未知主机名返回404
- 没有SAN的MSMQ的Windows故障转移群集?
- exchange-2010 – 恢复了2天的Microsoft Exchange – 丢失了