在IIS服务器安装SSL证书(Windows)

网站仅使用 HTTP 协议时,传输的数据为明文,存在被窃听和篡改的风险,且会被主流浏览器标记为“不安全”。为部署在 Windows IIS(Internet Information Services)服务器上的网站安装 SSL 证书,可启用 HTTPS 加密通信,保障数据传输安全,提升用户信任。本文介绍如何在IIS服务器部署SSL证书,以及安装证书后的效果验证。

重要

如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务

适用范围

开始配置前,确保满足以下条件:

  • 证书状态:已拥有由权威机构签发的 SSL 证书。若证书即将过期或已过期,请先续费SSL证书。

  • 域名匹配:确保证书能够匹配所有需保护的域名。如需添加或修改域名,可根据需求购买正式证书追加和更换域名

    • 精确域名:仅对指定域名生效。

      • example.com 仅对 example.com 生效。

      • www.example.com 仅对 www.example.com 生效。

    • 通配符域名:仅对其一级子域名生效。

      • *.example.com 对 www.example.coma.example.com 等一级子域名生效。

      • *.example.com 对根域名 example.com 和多级子域名 a.b.example.com 不生效。

    说明

    如需匹配多级子域名,绑定域名中需包含该域名(如 a.b.example.com),或包含相应的通配符域名(如 *.b.example.com)。

  • 服务器权限:需要使用 Administrator 账户或一个具有管理员权限的账户。

  • 域名备案与解析

    • ICP 备案:域名已完成工信部 ICP 备案(仅适用于中国内地服务器)。

    • 域名解析:域名已通过 A 记录解析至服务器的公网 IP。

    说明

    可访问网络诊断分析工具,输入域名,检查 DNS 服务商解析结果备案检查项,确保满足要求。

  • 环境依赖:本文以 Windows Server 2008 R2 和 Windows Server 2012 R2 操作系统为例,Windows Server 2008 R2 以上版本适用。

    说明

    不同操作系统版本的配置界面可能存在差异,请根据实际情况进行调整。

操作步骤

步骤一:准备SSL证书

  1. 进入SSL证书管理页面,在目标证书操作列单击更多进入证书详情页面,然后在下载页签中下载服务器类型IIS的证书。

  2. 解压下载的证书压缩包:

    • 若同时包含证书文件(PFX格式)和密码文件(TXT格式),请妥善保存上述文件,后续部署时均需使用。

      重要

      每次下载证书时都会产生新的密码,该密码仅匹配本次下载的证书文件。

    • 若仅包含证书文件(.pem),需要通过证书工具,将证书文件和持有的证书密码或私钥文件转换成PFX格式。具体操作请参见证书格式转换

      说明

      若申请证书时使用 OpenSSL、Keytool 等工具生成 CSR 文件,私钥文件仅保存在您本地,下载的证书包中不包含私钥。如私钥遗失,证书将无法使用,需重新购买正式证书并生成CSR和私钥。

  3. 将解压后的证书文件上传至服务器。

    说明

    以下操作以阿里云 ECS 为例,其它类型的服务器请参考其官方文档。

    1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

    2. 进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入服务器桌面。

    3. 单击服务器左下角开始菜单,查找并打开名为此电脑计算机文件资源管理器的选项。

    4. 双击重定向的驱动程序和文件夹下的***上的workbench,从本地拖动证书文件至该目录,然后右键刷新文件夹。

      image

    5. 将目标文件从该目录拖动至 C 盘或者其他盘。

      重要

      重新连接、退出实例时,Workbench会自动清除该实例重定向的驱动程序和文件夹中已上传的所有文件信息以节省空间,该目录仅用于文件传输,请不要保存文件。

步骤二:配置系统与网络环境

  1. 开放安全组的 443 端口。

    重要

    若您的服务器部署在云平台,请确保其安全组已开放入方向 443 端口 (TCP),否则外部无法访问服务。以下操作以阿里云 ECS 为例,其他云平台请参考其官方文档。

    1. 进入云服务器ECS实例页面,选择目标 ECS 实例所在地域,单击目标实例名称,进入实例详情页。

    2. 单击安全组 > 内网入方向全部规则,确保存在一条授权策略允许协议类型为 TCP、目的端口范围为 HTTPS(443)、授权对象任何位置(0.0.0.0/0)的规则。

    3. 如不存在上述规则,请参照添加安全组规则在目标安全组中添加相应规则。

  2. 开放服务器防火墙的443端口。

    1. 登录Windows服务器,单击左下角开始菜单,打开控制面板

    2. 点击系统和安全 > Windows防火墙 > 检查防火墙状态

    3. 如果防火墙处于如下图的关闭状态,无需额外操作。image

    4. 如果防火墙已开启,请参考以下步骤放行HTTPS规则。

      1. 单击左侧高级设置 > 入站规则,检查是否存在协议TCP,本地端口443,操作阻止的入站规则。

      2. 若存在此类规则,需要右键单击相应规则并选择属性,在常规页签,将其修改为允许连接应用

      3. 更多防火墙配置,请参见配置防火墙规则

步骤三:在MMC导入SSL证书

  1. 单击左下角开始菜单,搜索并打开运行对话框,输入mmc,单击确定

  2. MMC控制台,添加证书管理单元。

    1. 在控制台的顶部菜单栏,选择文件 > 添加/删除管理单元

    2. 添加或删除管理单元对话框,从左侧可用的管理单元列表中选择证书,单击添加添加或删除管理单元界面

    3. 证书管理单元对话框,选择计算机账户,单击下一步

    4. 选择计算机对话框,选择本地计算机(运行此控制台的计算机),单击完成

    5. 添加或删除管理单元对话框,单击确定

  3. 在控制台左侧导航栏,展开控制台根节点 > 证书(本地计算机),然后将光标放置在个人并单击鼠标右键,选择所有任务 > 导入打开证书导入向导

  4. 根据对话框提示,完成证书导入向导。

    1. 欢迎使用证书导入向导:单击下一步

    2. 要导入的文件对话框:单击浏览,打开PFX格式的证书文件,单击下一步

      在打开文件时,您必须先将文件类型设置为所有文件(*),然后再选择证书文件。

      导入证书

    3. 为私钥键入密码:打开TXT格式的私钥文件,复制文件内容,并将内容粘贴在密码文本框,单击下一步

    4. 证书存储:选中根据证书类型,自动选择证书存储,单击下一步

    5. 正在完成证书导入向导:单击完成

    6. 收到导入成功提示后,单击确定

步骤四:在IIS管理器为网站绑定SSL证书

  1. 添加网站绑定。请根据服务器操作系统的版本选择相应的操作步骤。

    Windows Server 2012 R2 及以上版本

    1. 单击image..png开始图标,然后单击服务器管理器 > 工具 > Internet Information Services (IIS) 管理器

      说明
    2. 在左侧连接区域,展开服务器,单击网站,在网站列表单击对应的网站,在右侧操作区域,单击绑定

      绑定

    3. 网站绑定对话框,单击添加

    4. 添加网站绑定对话框,完成网站的相关配置,并单击确定。请根据以下两种业务场景进行选择。

      • 为单个网站配置证书:仅需为 IIS 服务器上的一个网站配置证书,或多个网站配置同一个证书。

      • 为多个网站配置证书:需为IIS 服务器上的多个网站配置证书,且每个网站使用不同的证书。

    5. 为单个网站配置证书

      添加网站绑定

      • 类型:选择https

      • IP地址:选择服务器的IP地址。当网站部署在本服务器上且本服务器不存在多个IP地址的情况时,保持全部未分配即可。

      • 端口:默认为443,无需修改。

        说明

        建议端口设置为 443。若设置为非 443 端口,则通过浏览器访问网站时,必须在网站域名后添加端口号(例如:https://domain.com:8443)。

      • 主机名:填写需开启HTTPS的域名,例如:domain.com

      • 需要服务器名称指示:无需勾选。

        说明

        勾选后将出现警报:尚未创建默认SSL站点。若要支持不带SNI功能的浏览器,建议创建一个默认SSL站点。消除该警报需进行额外配置,具体操作请参见为多个网站配置证书

      • SSL证书:选择已导入的证书。

      为多个网站配置证书

      (推荐)使用 SNI 为多个网站配置证书

      以下图为例,web01web02两个网站都部署在IIS服务器上,且都使用本服务器的同一个IP地址与443端口,此时需要勾选需要服务器名称指示,否则会提示“至少一个其他网站正在使用同一HTTPS绑定”。

      image image

      • 类型:选择https

      • IP地址:选择服务器的IP地址。当网站部署在本服务器上且本服务器不存在多个IP地址的情况时,保持全部未分配即可。

      • 端口:默认为443,无需修改。

      • 主机名:为每个网站填写其对应的域名,例如:example1.com、example2.com。

      • 需要服务器名称指示:勾选。

      • SSL证书:为每个网站填写其对应的已导入的证书。

      配置完成后,将出现警报:尚未创建默认SSL站点。若要支持不带SNI功能的浏览器,建议创建一个默认SSL站点。表示未配置默认SSL站点时,部分不支持SNI的老旧浏览器在访问您的网站时会出错。如需配置默认 SSL 站点,请参考以下步骤进行操作。

      说明
      • 默认 SSL 站点是处理不支持 SNI 的用户的兜底站点,可以是一个空白页面或重定向页面,请根据实际的业务需求进行配置。

      • 目前只有少数老旧浏览器不支持SNI,例如Windows XP上的IE浏览器。若您评估不存在使用此类浏览器的用户,则可以忽略该警报。

      1. Internet Information Services (IIS) 管理器左侧连接区域,展开服务器,单击网站,在网站列表选择默认的Default Web Site或添加一个网站,在右侧操作区域,单击绑定

      2. 网站绑定对话框,单击添加。在添加网站绑定对话框,进行如下配置,并单击确定image

        • 类型:选择https

        • IP地址:选择服务器的IP地址。

        • 端口:保持默认443

        • 主机名:保持默认不填写。

        • 需要服务器名称指示:不勾选。

        • SSL证书:选择任意一个已导入的证书。

      使用多IP地址为多个网站配置证书

      重要

      若多个网站共用一个IP和端口(例如:80),使用此方式配置需修改DNS解析,网站访问的入口IP 将由单个变为多个,可能影响业务。建议您充分评估影响后再进行配置。

      1. 创建辅助弹性网卡,并绑定在IIS服务器ECS实例上,具体操作请参见创建并使用弹性网卡

      2. 创建EIP,并EIP绑定至辅助弹性网卡。公网IP地址与私网IP地址对应关系如下。image

      3. DNS服务商处修改DNS解析,将不同的IIS网站记录值修改为ECS实例上绑定的不同的公网IP地址。此示例中需要为example1.com配置记录值为106.xx.xx.198,为example2.com配置记录值为101.xx.xx.50

      4. IIS管理器中分别为网站进行如下配置:

        IIS网站

        SSL 证书

        IP地址

        ECS 实例的公网IP

        Web01

        example1.com 的证书

        192.168.1.211

        106.xx.xx.198

        Web02

        example2.com 的证书

        192.168.1.212

        101.xx.xx.50

        image image

        • 类型:选择https

        • IP地址:为每个网站填写其对应的服务器私网IP地址。此示例中web01对应192.168.1.211,web02对应192.168.1.212

        • 端口:默认为443,无需修改。

        • SSL证书:为每个网站填写其对应的已导入的证书。

    6. 网站绑定对话框,单击关闭

    7. 设置TLS策略(可选)。

      1. 下载 IIS Crypto 工具至服务器,选择IIS Crypto GUIhttps://www.nartac.com/Products/IISCrypto/Download

      2. 在服务器上双击运行下载的文件,在Schannel主页点击Best Practices最佳实践,在弹出的对话框单击确定,单击Apply应用,然后重启服务器实例。

    Windows Server 2008 R2

    1. 单击开始菜单,单击管理工具 > Internet 信息服务 (IIS) 管理器

      说明
    2. 在左侧连接区域,展开服务器,单击网站,在网站列表单击对应的网站,在右侧操作区域,单击绑定image

    3. 网站绑定对话框,单击添加

    4. 添加网站绑定对话框,完成网站的相关配置,并单击确定。请根据以下两种业务场景进行选择。

      • 为单个网站配置证书:只需要为 IIS 服务器上的一个网站配置证书,或多个网站配置同一个证书。

      • 为多个网站配置证书:需要为IIS 服务器上的多个网站配置证书,且每个网站使用不同的证书。

    5. 为单个网站配置证书

      image

      • 类型:选择https

      • IP地址:选择服务器的IP地址。当网站部署在本服务器上且本服务器不存在多个IP地址的情况时,保持全部未分配即可。

      • 端口:默认为443,无需修改。

        说明

        建议端口设置为 443。若设置为非 443 端口,则通过浏览器访问网站时,必须在网站域名后添加端口号(例如:https://domain.com:8443)。

      • SSL证书:选择已导入的证书。

      为多个网站配置证书

      Windows Server 2008 不支持 SNI,每个启用 HTTPS 的网站必须配置独立 IP 地址,且每个 IP 地址需与每张证书一一对应。

      重要

      若多个网站共用一个IP和端口(例如:80),使用此方式配置需修改DNS解析,网站访问的入口IP 将由单个变为多个,可能影响业务。建议您充分评估影响后再进行配置。

      1. 创建辅助弹性网卡,并绑定在IIS服务器ECS实例上,具体操作请参见创建并使用弹性网卡

      2. 创建EIP,并EIP绑定至辅助弹性网卡。公网IP地址与私网IP地址对应关系如下。image

      3. DNS服务商处修改DNS解析,将不同的IIS网站记录值修改为ECS实例上绑定的不同的公网IP地址。此示例中需要为example1.com配置记录值为106.xx.xx.198,为example2.com配置记录值为101.xx.xx.50

      4. IIS管理器中分别为网站进行如下配置:

        IIS网站

        SSL 证书

        IP地址

        ECS 实例的公网IP

        Web01

        example1.com 的证书

        192.168.1.211

        106.xx.xx.198

        Web02

        example2.com 的证书

        192.168.1.212

        101.xx.xx.50

        image image

        • 类型:选择https

        • IP地址:为每个网站填写其对应的服务器私网IP地址。此示例中web01对应192.168.1.211,web02对应192.168.1.212

        • 端口:默认为443,无需修改。

        • SSL证书:为每个网站填写其对应的已导入的证书。

    6. 完成配置后,您可以在网站绑定列表查看已添加的https类型网站绑定。

      说明

      部分Windows Server 2008可能会出现报错“证书链中的一个或多个中间证书丢失”,解决方法请参见常见问题

    7. 网站绑定对话框,单击关闭

    8. 设置TLS策略。

      对于Windows Server 2008,默认的TLS配置可能不被现代浏览器、App或小程序信任。若配置完成后访问网站出现:“ERR_SSL_VERSION_OR_CIPHER_MISMATCH”、“使用了不受支持的协议”等错误。请参照以下步骤设置TLS策略:

      1. 下载IIS Crypto工具至服务器,选择IIS Crypto GUIhttps://www.nartac.com/Products/IISCrypto/Deprecated

      2. 在服务器上双击运行下载的文件,在Schannel主页点击Best Practices最佳实践,在弹出的对话框单击确定,单击Apply应用,弹出需要重启的提示框,然后重启服务器实例。

  2. 可选:设置HTTP请求自动跳转到HTTPS。

    1. Internet Information Services (IIS) 管理器,左侧连接区域,展开服务器,单击网站,选择要配置跳转的网站,在网站主页查找是否有URL重写模块。若不存在则需要访问https://www.iis.net/downloads/microsoft/url-rewrite,根据系统类型选择对应链接进行下载安装,安装完成后,需关闭IIS管理器窗口并重新开启,以使其生效。

      imageimage

    2. 双击URL重写,在右侧操作列,点击添加规则

    3. 添加规则对话框,选择入站规则>空白规则,点击确定

    4. 编辑入站规则对话框,完成以下配置。下表中其他未提及参数保持默认即可。

      参数

      配置内容

      名称

      自定义填写规则的名称

      匹配URL

      请求的URL

      选择与模式匹配

      使用

      选择正则表达式

      模式

      填写(.*)

      忽略大小写

      勾选

      条件

      逻辑分组

      选择全部匹配

      条件(添加一个条件)

      条件输入

      填写{HTTPS}

      检查输入字符串是否

      选择与模式匹配

      模式

      填写^OFF$

      忽略大小写

      勾选

      操作

      操作类型

      选择重定向

      重定向URL

      填写https://{HTTP_HOST}/{R:1}

      附加查询字符串

      勾选

      重定向类型

      选择已找到(302)永久(301)

      image

    5. 点击右侧操作应用

    6. 返回Internet Information Services (IIS) 管理器,在左侧连接区域,点击服务器并重新启动IIS管理器。完成配置,测试HTTP的访问请求都自动跳转至HTTPS。image

步骤五:验证部署结果

  1. 请通过 HTTPS 访问您已绑定证书的域名(如 https://yourdomain.comyourdomain.com 需替换为实际域名)。

  2. 若浏览器地址栏显示安全锁图标,说明证书已成功部署。如访问异常或未显示安全锁,请先清除浏览器缓存或使用无痕(隐私)模式重试。

    image

    Chrome 浏览器自 117 版本起,地址栏中的image已被新的image替代,需单击该图标后查看安全锁信息。

说明

如仍有问题,请参考常见问题进行排查。

应用于生产环境

在生产环境部署时,遵循以下最佳实践可提升安全性、稳定性和可维护性:

  • 使用非管理员权限用户运行

    为应用创建专用的、低权限的系统用户,切勿使用拥有管理员权限的账户运行应用。

    说明

    建议使用网关层配置 SSL的方案,即将证书部署在负载均衡SLBNginx等反向代理上,由其终结 HTTPS 流量,再将解密后的 HTTP 流量转发到后端应用。

  • 凭证外部化管理

    切勿将密码等敏感信息硬编码在代码或配置文件中。使用环境变量、Vault 或云服务商提供的密钥管理服务来注入凭证。

  • 启用 HTTP 到 HTTPS 强制跳转

    确保所有通过 HTTP 访问的流量都被自动重定向到 HTTPS,防止中间人攻击。

  • 配置现代 TLS 协议

    在服务器配置中禁用老旧且不安全的协议(如 SSLv3, TLSv1.0, TLSv1.1),仅启用 TLSv1.2 和 TLSv1.3。

  • 证书监控与自动续期

    建议在证书部署完成后,为域名开启域名监控功能。阿里云将自动检测证书有效期,并在证书到期前发送提醒,帮助您及时续期,避免服务中断。具体操作请参见购买并开启公网域名监控

常见问题

安装或更新证书后,证书未生效或 HTTPS 无法访问

常见原因如下:

  • 域名未完成备案。请参见ICP备案流程

  • 服务器安全组或防火墙未开放 443 端口。请参见配置系统与网络环境

  • 证书的绑定域名未包含当前访问的域名。请参见域名匹配

  • 证书未正确替换。请检查所用证书文件是否为最新且有效。

  • 域名已接入 CDN、SLB 或 WAF 等云产品,但未在相应产品中安装证书。请参阅流量经过多个云产品时证书的部署位置完成相关操作。

  • 当前域名的 DNS 解析指向多台服务器,但证书仅在部分服务器上安装。需分别在每个服务器中安装证书。

Windows Server 2008 R2 提示"证书链中的一个或多个中间证书丢失。要解决此问题,请确保安装了所有中间证书。"

由于Windows Server 2008 R2 系统版本较老,服务器证书库中可能缺少相应的根证书或中间证书,因此无法验证证书是否有效。请查看SSL证书信息确认根证书版本后,前往下载根证书,手动上传根证书至服务器,双击根证书文件完成安装即可。

如何查看证书信息

  1. 登录数字证书管理服务控制台。在左侧导航栏选择证书管理 > SSL证书管理

  2. SSL证书管理页面,定位需部署的目标证书,在目标证书操作列单击更多进入证书详情页面。

  3. 证书链信息部分查看证书颁发者。如下图所示,如果证书签发时间为20241201日之后,下载Digicert_Global_Root_G2_DV_OV(新-交叉根),如果签发时间为20241201日之前,下载DigiCert_Global_Root_G2_DV_OV(旧-过渡),详情请参见【公告】关于DigiCert根替换公告

    imageimage

如何更新(替换)IIS 中已安装的 SSL 证书

先将新证书导入MMC。然后在IIS管理器中编辑步骤四:在IIS管理器为网站绑定SSL证书中的站点绑定,将SSL证书替换为新证书。替换完成后,清除浏览器缓存或使用无痕(隐私)模式访问您的网站,点击下图位置查看证书详情,验证是否更新成功。

image

image

image

为什么导入证书时找不到 .pfx 文件?

在文件选择对话框中,需将右下角的文件类型从默认的“X.509 证书”更改为“所有文件(*)”。

如果丢失了 .pfx 文件的密码怎么办?

证书密码与每次下载的证书文件唯一对应。如果丢失,可参照准备SSL证书重新下载证书,系统会生成一个新的密码文件。

如何查看系统是x64还是x86架构?

  • 通过命令查看

    单击开始菜单,搜索并打开cmd,输入wmic os get osarchitecture,返回64位或32位。64位系统对应x64架构,32位系统对应x86架构。

  • 通过控制台查看

    如果是ECS实例,也可以在控制台进行查看,如下图:image