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

本文介绍如何在IIS(Internet Information Services)服务器部署SSL证书,具体包括下载以及导入PFX格式的证书文件的方法、为网站绑定证书的参数配置,以及安装证书后的效果验证。

重要
  • 适用范围:本文以 Windows Server 2008 R2 和 Windows Server 2012 R2 操作系统为例进行介绍,Windows Server 2008 R2 以上版本适用。

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

  • 技术支持:如需协助,请参见专家一对一服务

前提条件

  • 已通过数字证书管理服务购买和申请证书(状态已签发)。如需购买和申请证书,请参见购买正式证书申请证书

  • 域名已正确解析至当前服务器,且已完成工信部 ICP 备案(适用于中国内地服务器)。

    如何查看域名解析记录以及 ICP 备案信息

    打开网络拨测工具,选择网络诊断分析,输入当前域名,确认以下信息:

    • DNS 服务商解析结果中 A 记录的 IP 为当前服务器的公网 IP。

    • 备案检查网站已备案。若显示“网站未备案,请咨询网站服务器提供商”,请完成备案后再安装证书。

  • 域名已正确解析至当前服务器。

  • 当前需要部署的证书为国际标准 SSL证书。IIS不支持部署国密标准 SSL证书,支持部署国密标准证书的方式请参见国密标准SSL证书

  • 操作者需要拥有本服务器的管理权限(即“Administrator账户”或“管理员”类型的账户)。

操作步骤

步骤一:下载SSL证书

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

  2. SSL证书管理页面,定位需部署的目标证书,并确认以下信息:

    1. 证书状态:确保其为已签发。若为即将过期已过期,则需续费SSL证书

    2. 绑定域名:确保其能够匹配所有需保护的域名,否则未匹配的域名访问 HTTPS 时将出现安全警告。如需添加或修改,请参见追加和更换域名

      确认证书是否匹配目标域名

      证书的绑定域名可包含多个精确域名和通配符域名。每类域名的匹配规则如下:

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

        • 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)。

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

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

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

      重要

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

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

      说明

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

步骤二:在MMC导入SSL证书

  1. 登录Windows服务器。

    阿里云服务器

    以下操作以阿里云云服务器 ECS 为例进行说明,其他类型的服务器请参照对应产品文档进行操作。

    1. 登录ECS管理控制台,在页面左侧顶部,选择目标ECS实例所在地域。

    2. 在左侧导航栏中选择实例与镜像 > 实例,在实例页面找到目标ECS实例,点击操作列的远程连接

    3. 在弹出的对话框中,选择通过Workbench远程连接并单击立即登录

    4. 选择终端连接作为连接方式,输入相关认证信息,并根据页面提示完成登录,即可进入服务器终端。详细操作请参考使用Workbench登录ECS实例

      说明

      若系统弹出“安全组白名单开通提示”面板,请按照页面提示单击一键添加

    其他云厂商服务器

    请通过对应云厂商提供的远程连接功能登录服务器终端。

    非云厂商服务器(如物理服务器、IDC托管主机等)

    请在本地使用登录服务器。

    • Windows:在系统自带的远程桌面连接应用进行连接。

    • macOS:可以在软件商店下载Windows App(之前名为Microsoft远程桌面)进行连接。

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

    重要

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

    1. 登录ECS管理控制台,在页面左侧顶部,选择目标 ECS 实例所在地域。在实例页面,找到目标 ECS 实例。

    2. 单击目标实例名称,进入实例详情页面,单击安全组 > 内网入方向全部规则,确保存在一条授权策略允许协议类型为 TCP、目的端口范围为 HTTPS(443)、授权对象任何位置(0.0.0.0/0)的规则。如不存在此规则,请进行添加。

      如何添加安全组规则

      1. 在 ECS 实例详情页面,单击安全组 > 安全组列表,选择目标安全组并进入其详情页。

      2. 在安全组详情页的安全组详情 > 入方向下,单击增加规则

      3. 新建安全组规则面板,将访问目的(本实例)设置为 HTTPS(443),其余参数保持默认值,单击确定即可。

      4. 更多安全组配置请参见添加安全组规则

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

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

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

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

    4. 如果防火墙已开启,需放行HTTPS规则。

      如何放行防火墙HTTPS规则

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

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

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

  4. 上传证书文件到服务器,以下三种方式任选其一即可。

    Workbench上传文件

    1. 在前面步骤打开的 Workbench 页面中,单击左下角开始菜单,查找并打开名为此电脑计算机文件资源管理器的选项。

    2. 双击 xxx上的workbench

      image

    3. 从本地拖动之前步骤下载的zip文件至该目录,并右键刷新文件夹。

    4. 然后将目标文件从该目录拖动到 C 盘或者其他盘。

      重要

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

    远程连接工具上传文件

    在使用远程桌面连接Windows App连接实例时,可以直接将下载的证书文件复制 > 粘贴上传至服务器,具体操作,请参见使用远程桌面或Windows APPWindows实例传输文件

    在服务器上下载证书文件

    如果您的服务器可以访问公网并登录阿里云控制台,则可以直接在服务器上登录数字证书管理服务控制台进行步骤一的下载。

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

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

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

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

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

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

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

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

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

    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浏览器。若您评估不存在使用此类浏览器的用户,则可以忽略该警报。

      配置默认SSL站点

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

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

        1. 类型:选择https

        2. IP地址:选择服务器的IP地址。

        3. 端口:保持默认443

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

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

        6. 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管理器中分别为网站进行如下配置:

      5. 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管理器中分别为网站进行如下配置:

      5. 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管理器窗口并重新开启,以使其生效。

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

      单击开始菜单,搜索并打开cmd,输入wmic os get osarchitecture,返回64位或32位,64位系统对应x64架构,32位系统对应x86架构。如果是ECS实例,也可以在控制台进行查看。image

      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

步骤四:验证SSL证书是否安装成功

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

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

    image

    说明

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

    image

说明

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

后续步骤(可选)

开启域名监控

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

常见问题

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

常见原因如下:

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管理器中编辑步骤三中的站点绑定,将SSL证书替换为新证书。替换完成后,清除浏览器缓存或使用无痕(隐私)模式访问您的网站,点击下图位置查看证书详情,验证是否更新成功。

image

image

image