文档中心
IIS鏇挎崲SSL璇佷功鍏ㄦ敾鐣ユ墜鎶婃墜鏁欎綘瀹夊叏鍗囩骇缃戠珯鍔犲瘑閰嶇疆
时间 : 2025-09-27 16:19:41浏览量 : 3

在互联网世界中,SSL证书就像网站的“身份证”和“防盗门锁”,它能验证网站的真实性,同时加密用户与服务器之间的通信。而IIS(Internet Information Services)作为Windows服务器上常用的Web服务工具,定期更换SSL证书是运维人员的必修课。今天,我们就用最直白的语言,结合真实场景案例,一步步教你如何在IIS上安全替换SSL证书。
一、为什么要替换SSL证书?
1. 证书过期:就像食品有保质期一样,SSL证书通常只有1-2年有效期。过期后浏览器会显示“不安全”警告(比如Chrome的红色三角标)。
*举例*:某电商网站在大促当天因证书过期导致用户无法支付,直接损失百万订单。
2. 安全升级:旧证书可能使用弱加密算法(如SHA-1),容易被破解。
*举例*:2025年谷歌发现SHA-1算法可在10天内被攻破,强制要求升级到SHA-256。
3. 域名变更:新增子域名或更换主域名时需重新申请证书。
*举例*:公司从`www.old.com`迁移到`www.new.com`,必须更新证书匹配新域名。
二、准备工作:4个关键步骤
1. 备份原证书
打开IIS管理器 → 点击服务器名称 → 进入“服务器证书” → 找到当前证书 → 右键“导出”保存为`.pfx`文件(需设置密码)。
*小贴士*:备份就像给系统拍快照,万一操作失误还能回滚。
2. 获取新证书
从CA机构(如DigiCert、Let's Encrypt)购买或申请免费证书,通常会收到:
- `.cer`或`.crt`文件(公钥)
- `.key`文件(私钥)
- 可能还有CA的中间证书链
3. 检查兼容性
确保新证书的密钥长度≥2048位,签名算法为SHA-256或更高。用在线工具(如[SSL Labs](https://www.ssllabs.com/))测试兼容性。
4. 安排维护窗口
替换过程会导致短暂服务中断,建议在凌晨低峰期操作。
三、IIS替换SSL证书详细步骤
场景案例
假设你的网站`api.example.com`原使用Let's Encrypt旧证书,现在需要替换为DigiCert的新通配符证书(`*.example.com`)。
步骤1:导入新证书到IIS
1. 打开IIS管理器 → 点击服务器名称 → 双击“服务器证书”。
2. 点击右侧“导入” → 选择新证书的`.pfx`文件 → 输入导出时设置的密码 → 勾选“允许导出此证书”(方便后续迁移)。

*注:若使用`.crt + .key`组合格式,需先用OpenSSL合成PFX文件*
步骤2:绑定新证书记录到站点
1. 在IIS中找到目标站点(如`Default Web Site`) → 右键“编辑绑定”。
2. 选择HTTPS类型的绑定 → 点击“编辑” → 从下拉菜单选择新证书记录名。
?? *常见坑点*:
- 如果下拉菜单中看不到新证书记录名?可能是私钥未正确关联。
- IIS默认会同时监听IPv4和IPv6地址!记得检查两个版本的绑定。
步骤3:(可选)更新中间证书记录链
某些CA要求手动安装中间证书记录链:
```powershell
Windows CMD示例
certutil -addstore "CA" intermediate.crt
```
四、验证与故障排查
验证方法
1. 浏览器检查:
- Chrome访问网站 → 点击地址栏锁图标 → “证书记录” →查看有效期和颁发者。
- `openssl s_client -connect api.example.com:443 -servername api.example.com | openssl x509 -noout -dates`
2. 在线工具扫描:
[SSLLabs测试报告](https://www.ssllabs.com/ssltest/)会明确提示证书记录是否生效、是否包含完整链。
常见问题解决
- 错误1:“此证书记录不受信任”
原因:缺少中间证书记录链。解决方案:[下载CA根证书记录包](https://support.digicert.com/support/index?page=kbchannel&id=ARB-KB1228)并安装到“受信任的根证书记录颁发机构”。
- 错误2:“私钥不匹配”
原因:可能是误用了其他服务器的PFX文件。用以下命令验证:
```powershell
certutil -verifykeys My
```
五、高级技巧与自动化
对于需要频繁换证的场景(如Let's Encrypt每90天续期),推荐:
1. PowerShell自动化脚本示例:
Import-PfxCertificate -FilePath "C:\newcert.pfx" -CertStoreLocation Cert:\LocalMachine\My -Password (ConvertTo-SecureString "YourPassword" -AsPlainText -Force)
Get-WebBinding -Name "Default Web Site" | Where-Object { $_.Protocol -eq "https" } | Remove-WebBinding
New-WebBinding -Name "Default Web Site" -Protocol "https" -Port 443 -SslFlags 1
2. 使用ACME客户端自动续期(如[win-acme](https://www.win-acme.com/))。
*
换SSL证书记录看似简单,但一个疏忽可能导致全站HTTPS瘫痪。记住三个关键点:
1?? *提前备份原证记录*
2?? *确保证记录链完整*
3?? *换完后立即验证*
如果你遇到奇葩问题(比如只有IE报错而Chrome正常),大概率是证记录链缺失或系统缓存作祟。这时候不妨喝杯咖啡清空缓存再战! ?
TAG:iis替换ssl证书,更换ssl证书后需要重启吗,apache更换ssl证书,ssl证书替换流程,iis配置https证书,配置ssl替换域名