文档中心
IIS鏈嶅姟鍣ㄥ浣曞悓鏃朵娇鐢ㄤ袱寮燬SL璇佷功锛熷疄鎴橀厤缃寚鍗?txt
时间 : 2025-09-27 16:19:49浏览量 : 1

在今天的互联网环境中,SSL证书已经成为网站安全的标配。但对于一些复杂的业务场景(比如多域名、多子域名或混合环境),可能需要在一台IIS服务器上同时部署两张SSL证书。这种情况该怎么操作?会不会冲突?本文将通过实际案例和通俗解释,带你一步步搞定配置。
一、为什么需要两张SSL证书?
在讨论技术细节前,先看几个典型场景:
1. 案例1:多域名托管
你的网站同时提供`www.example.com`和`shop.example.com`服务,但证书是分开申请的:
- 主站用DigiCert的通配符证书(`*.example.com`)
- 电商子站用GoDaddy的单域名证书(仅`shop.example.com`)
2. 案例2:新旧证书过渡
旧证书即将到期,新证书已签发但尚未全量切换,需要并行测试。
3. 案例3:不同加密需求
对外用户使用标准RSA证书,内部管理系统需要国密SM2证书。
二、IIS如何处理多张证书?
IIS通过SNI(Server Name Indication)扩展支持多证书。简单来说:
- 当用户访问网站时,浏览器会先“告诉”服务器:“我要访问的是xxx.com”。
- IIS根据这个提示选择对应的证书响应。
?? 关键点:SNI需要客户端支持(现代浏览器都OK),否则会 fallback 到默认证书。
三、具体配置步骤(以IIS 10为例)
场景模拟:
- 绑定域名A(`a.test.com`)使用证书A
- 绑定域名B(`b.test.net`)使用证书B
Step 1: 导入两张证书
1. 打开MMC → 添加“证书”管理单元 → 选择“计算机账户”
2. 将两张PFX文件分别导入到“个人”存储区
Step 2: IIS站点绑定
1. 右键网站 → 编辑绑定
2. 添加HTTPS绑定:
- IP地址:保持“全部未分配”
- 端口:443
- 主机名填写对应域名(如a.test.com)
- SSL证书选择匹配的“证书A”
3. 重复操作添加第二个HTTPS绑定:
- 主机名填b.test.net
- SSL选“证书B”

Step 3: SNI检查
确保每个绑定的【需要服务器名称指示】勾选状态:
- ? SNI启用 → IIS能根据域名选证书记录
- ? SNI禁用 → IIS会用该IP+端口下的第一个证书记录
四、常见问题排查
Q1: Chrome报错“ERR_SSL_VERSION_OR_CIPHER_MISMATCH”
可能原因:
- 客户端不支持SNI(如Windows XP的IE6)
- 解决方案:对老旧系统单独分配IP+端口
Q2: IIS提示“至少一个其他站点正在使用同一HTTPS绑定”
冲突原因:
- IP+端口相同但未指定主机名
- Fix:
```powershell
netsh http delete sslcert ipport=0.0.0.0:443
```
Q3: Let's Encrypt续签失败
通配符和非通配符混用时:
- Certbot默认可能覆盖原有绑定
- 对策:
```bash
certbot --cert-name a.test.com -d a.test.com --preferred-challenges dns
五、进阶技巧:自动化管理
当有大量域名时,推荐用PowerShell脚本批量操作:
为所有站点添加SAN证书
Import-Module WebAdministration
Get-ChildItem IIS:\SslBindings | Where { $_.Port -eq "443" } | ForEach {
New-WebBinding -Name $_.SiteName -Protocol "https" -Port "443" -HostHeader $_.Host
}
??关键点??
1. SNI是核心机制——让服务器能区分不同域名的请求
2. 主机名必须填写准确——否则匹配不到正确证书记录
3. 老旧系统要特殊处理——可通过独立IP或降级兼容
只要理清逻辑链:“客户端声明域名 → SNI路由 → IIS匹配对应证书记录”,多证书记录配置就能轻松驾驭。遇到问题欢迎在评论区交流!??
TAG:iis 两张ssl证书,ssl证书和https证书区别,ssl证书和ca证书区别,ssl证书和域名有什么关系,ssl证书和域名的关系,ssl证书和域名证书区别,ssl证书和私钥,ssl证书和域名,ssl证书和TLS加密的区别,ssl证书和设备证书的区别