如何在 IIS 上安装配置 SSL 证书?
在 Windows Server 的 IIS 上部署 HTTPS,真正需要操作的核心环节并不多:先把带私钥的 PFX/P12 证书导入 Windows 证书库,再在 IIS 中完成网站的 HTTPS 绑定。
确认 HTTPS 能正常访问后,再配置 HTTP 到 HTTPS 的跳转。具体怎么弄、过程中有哪些踩坑点,按照实际的部署顺序来走最顺畅。
一、IIS 到底需要什么格式的证书?
和 Linux 环境(Nginx、Apache)把 .crt/.pem 证书文件和 .key 私钥文件分开配置不同,Windows IIS 导入证书时通常需要使用包含私钥的 PFX(或 P12)文件。
在证书签发完成后,如果是通过 CA 机构后台直接下载,通常选择“IIS”格式就能拿到一个打包好的 .pfx 文件(通常带有解压/导入密码)。如果手里只有纯文本的私钥和证书文件,可以参考 SSL证书选购指南 和 SSL证书类型怎么分? 先确认证书规格,再借助工具把证书与私钥合并导出为 PFX。
PFX 可以同时封装服务器证书、私钥和中间证书,但是否包含完整证书链,取决于导出时的打包方式。需要注意,不要依赖客户端去自动补全证书链,服务器端应保证导入了完整的中间证书,才能确保各种访问终端都能顺利建立信任。
二、在 Windows 证书库中导入 PFX 证书
准备好 PFX 文件后,第一步需要把它塞进服务器的证书存储区里,IIS 才能识别到它。
- 按
Win + R键,输入inetmgr打开 Internet Information Services (IIS) 管理器。 - 在左侧的“连接”树状导航中,直接点击最顶层的服务器主机名。
- 在中间的功能列表里找到并双击 服务器证书。
- 在右侧“操作”栏点击 **导入...**。
- 浏览选中准备好的
.pfx文件,输入对应密码。证书存储位置选择“个人”即可。
只要密码正确,列表中就会出现这张证书的域名、颁发者和到期时间。如果在此处报错,通常是因为在旧版 Windows Server(如 2012/2016)上尝试导入了由较新 OpenSSL 版本默认强加密算法(如 AES-256-CBC)生成的 PFX。这种情况下需要使用 TripleDES 等兼容算法重新导出 PFX。
三、将证书绑定到具体网站
证书进库之后,就需要让具体的 Web 站点用上它。
- 在 IIS 管理器左侧展开 网站,找到并右键点击目标站点,选择 **编辑绑定...**。
- 在弹出的窗口里点击 **添加...**。
- 类型选择
https,端口默认443。 - 主机名填写网站的访问域名(例如
www.example.com)。 - 需要服务器名称指示(SNI) 的勾选逻辑:如果服务器只有一个 IP 且只跑了一个 HTTPS 站点,勾不勾选影响不大;但如果这台服务器的同一个 IP 上挂载了多个 HTTPS 网站,建议启用 SNI,否则多站点之间容易出现证书混淆和错乱。
- 在底部的 SSL 证书 下拉框里,选中刚才导入的那张证书。
保存退出后,443 端口的监听就建立好了。如果需要对比 Nginx 或 Apache 等其他环境的绑定步骤,可以在 SSL证书安装与部署 中找到具体的配置说明。
四、配置 HTTPS 后访问不了?先不要急着做 301 重定向
很多运维在绑定完证书后,第一时间就去设置 HTTP 到 HTTPS 的重定向,结果页面报错时根本分不清是证书问题、防火墙问题还是跳转规则写错了。
正确做法是:先不要急着做 301。
在浏览器直接输入 https://你的域名 进行直连测试。检查以下几项:
- 页面能否顺畅打开,浏览器地址栏是否显示安全锁。
- 锁头点开后,核对展示的证书是否就是刚导入的那张(避免拿到默认证书或旧证书)。
- 如果页面加载出来了,但地址栏提示“不安全”或部分样式错乱,通常是网页源码里包含了
http://的资源路径,产生混合内容(Mixed Content),修改为相对路径即可。
如果浏览器直接报错“域名不匹配”或“不受信任”,可以按照 如何修复SSL证书错误? 的分类排查方法核对证书 SAN 项和证书链。如果外网压根打不开,先去检查服务器防火墙和云厂商的安全组,确认 TCP 443 端口是否真正放行。
五、确认 HTTPS 正常后,配置 HTTP 自动跳转 HTTPS
确认通过 https:// 访问毫无问题后,再来把原有的 HTTP 流量自动引导过来。
在 IIS 上最稳妥的处理方式是借助微软官方的 URL 重写(URL Rewrite) 模块:
- 打开网站的功能列表,双击 URL 重写,点击右侧的 **添加规则...**,选择“空白规则”。
- 匹配 URL 处的模式填
(.*)。 - 在 条件 栏新增一项:输入
{HTTPS},模式填^OFF$。 - 操作 处的操作类型选择
重定向,重定向 URL 填写https://{HTTP_HOST}/{R:1},重定向类型选永久(301)。
关于站点跳转后的 301 传递以及全站 HTTPS 改造细节,可以参考 网站如何从HTTP更改为HTTPS? 的整体路线。
六、部署完成后如何确认证书完全生效?
浏览器能打开,只能说明最基本的 HTTPS 已经通了。上线前还建议把下面几项检查一遍:
- 检查域名 SAN 覆盖:确认访问主域名(
example.com)和带www的域名时,证书都能精准匹配不弹窗。 - 检查证书链完整度:有些手机端或特定客户端不自带最新的根证书,如果服务器没把中间证书链送全,这些设备就会报错。可以使用在线 SSL 工具扫描一遍,确认中间证书链是否完整。
- 检查 TLS 协议支持:检查 IIS 是否关闭了早已废弃的 TLS 1.0/1.1,仅保留 TLS 1.2/1.3。
常见问题 FAQ
Q:更新到期证书时,需要先删除旧证书或者重启 IIS 吗?
A:一般不需要重启整个 IIS 服务。直接把新签发的 PFX 导入服务器证书库,然后回到网站的“编辑绑定”里,把 SSL 证书选项切换成新证书保存就行。如果前面还有负载均衡、CDN 或反向代理,同步更新对应节点的证书即可。
Q:一台 IIS 服务器配置多个 HTTPS 网站,为什么总是加载同一张证书?
A:这说明没有正确开启 SNI。检查所有 443 端口绑定,确保每个站点都勾选了“需要服务器名称指示(SNI)”,并且明确填写了各自对应的“主机名”。如果不勾选 SNI,IIS 会默认将请求路由到同 IP 下的第一个默认 443 站点上。
Q:如果在测试环境部署,可以使用免费证书配置 IIS 吗?
A:完全可以。测试环境或者预算有限的项目,用 Let's Encrypt 等免费证书配合第三方 Windows 客户端(如 Win-ACME),可以自动完成证书申请、转换 PFX 并直接写进 IIS 绑定。具体机制可以参考 免费SSL证书是什么?怎么申请?。
Q:导入 PFX 证书时提示“指定了不正确的密码”,但密码明明是对的?
A:不一定是密码本身错误。旧版 Windows Server 对部分较新的 PFX 加密算法支持有限,如果 PFX 是使用较新的 OpenSSL 版本导出的,就可能出现密码正确但导入失败的情况。解决办法是在生成或导出 PFX 时,选择“Legacy”(传统)兼容模式,使用 TripleDES-SHA1 加密导出后再在 IIS 中导入。



京公网安备11010502031690号
网站经营企业工商营业执照
















