当前位置:首页 > 虚拟主机 > 正文

如何在IIS上配置PEM SSL证书?详细步骤是怎样的?

在Windows服务器环境中,将PEM格式的SSL证书配置到IIS(Internet Information Services)是常见的网站部署需求,PEM证书因其包含完整的证书链(服务器证书+中间证书+根证书),常用于HTTPS加密通信,以下将详细介绍在IIS中导入和配置PEM证书的完整流程、注意事项及相关问题解答。

PEM证书与IIS的兼容性处理

PEM证书是Base64编码的文本文件,通常以.pem、.crt、.cer或.key为后缀,IIS原生支持.p7b(PKCS#7格式)和.pfx(PKCS#12格式)证书,因此需要将PEM证书转换为IIS兼容的格式,或通过特定方法直接导入,若证书包含私钥,需确保私钥文件(.key)与证书文件匹配,且私钥未设置密码保护(IIS暂不支持带密码的私钥)。

准备工作

  1. 证书文件整理

    确保拥有完整的证书文件,包括:

    • 服务器证书(domain.crt)
    • 中间证书文件(如chain.crt或intermediate.crt)
    • 根证书(通常无需单独操作,由中间证书链包含)

      若私钥为单独文件(domain.key),需将其与证书合并为一个.pem文件(内容顺序:私钥+服务器证书+中间证书)。

  2. 工具准备

    • OpenSSL(用于格式转换,可选)
    • IIS管理器(服务器自带)
    • 文本编辑器(如记事本,用于查看证书内容)

配置步骤

直接导入PEM证书(需合并证书链)

  1. 合并证书文件

    使用文本编辑器将私钥、服务器证书、中间证书按顺序合并为单个.pem文件,

    如何在IIS上配置PEM SSL证书?详细步骤是怎样的? 第1张

    保存为domain_all.pem。

  2. 通过IIS管理器导入

    • 打开IIS管理器,点击服务器节点,在“服务器证书”模块中点击“导入…”。
    • 选择“个人”存储区,点击“下一步”。
    • 在“证书文件”框中输入合并后的.pem文件路径,若未自动识别私钥,需手动选择“是,此证书包含私钥的相应私钥”。
    • 填写证书友好名称(如“example.com SSL”),点击“完成”。
    • 转换为.pfx格式后导入

      1. 使用OpenSSL转换格式

        打开命令行工具,执行以下命令:

        openssl pkcs12 export out domain.pfx inkey domain.key in domain.crt certfile intermediate.crt

        根据提示设置.pfx文件密码(需妥善保存)。

      2. 在IIS中导入.pfx证书

        • 在IIS管理器的“服务器证书”模块中点击“导入…”。
        • 选择“个人”存储区,点击“下一步”。
        • 浏览选择.pfx文件,输入密码,填写友好名称,点击“完成”。

      通过MMC管理单元导入

      1. 打开MMC控制台

        在服务器中运行mmc,点击“文件”→“添加/删除管理单元”→选择“证书”→添加“计算机账户”→“本地计算机”。

      2. 导入证书

        展开“证书(本地计算机)”→“个人”→“证书”,右键点击“所有任务”→“导入”,选择PEM或.pfx文件,按向导完成导入。

        如何在IIS上配置PEM SSL证书?详细步骤是怎样的? 第2张

      绑定SSL证书到网站

      1. 在IIS管理器中选中目标网站,点击“绑定…”。
      2. 添加类型为“https”的绑定,选择已导入的证书,端口号默认为443。
      3. 若需HTTP跳转HTTPS,可在“URL重写”模块添加入站规则,匹配模式为“^http(s)://(:80)?/(.*)$”,重定向URL为“https://{HTTP_HOST}/{R:1}”。

      验证与故障排查

      1. 验证证书有效性

        在浏览器中访问https://域名,查看证书是否由受信任机构颁发,有效期是否正确。

      2. 检查证书链

        使用OpenSSL命令验证证书链: openssl s_client connect 域名:443 showcerts

        确保输出包含完整的证书链(服务器证书→中间证书→根证书)。

      3. 常见错误
        • 证书链不完整:确保中间证书已正确导入,部分CA要求按特定顺序排列证书。
        • 私钥不匹配:验证PEM文件中私钥与证书的公钥是否一致(使用openssl x509 noout modulus in domain.crt | openssl md5与openssl rsa noout modulus in domain.key | openssl md5对比MD5值)。
        • 端口冲突:确保443端口未被其他程序占用。

      证书自动更新配置

      若使用Let’s Encrypt等免费证书,可通过ACME客户端(如Winacme)自动续期并更新IIS证书,避免手动操作。

      相关问答FAQs

      Q1: 导入PEM证书时提示“私钥不可用”怎么办?

      A: 此问题通常由私钥格式错误或与证书不匹配导致,需检查:

      1. 确认PEM文件中私钥部分以BEGIN PRIVATE KEY开头,而非BEGIN RSA PRIVATE KEY(后者需转换为PKCS#8格式);
      2. 使用OpenSSL验证私钥与证书的公钥是否匹配(如上述MD5对比方法);
      3. 若私钥为加密格式,需先解密:openssl rsa in encrypted.key out decrypted.key,再使用解密后的私钥合并。

      Q2: 如何在IIS中配置多个域名的SSL证书(SAN证书)?

      A: 多域名证书(SAN或UC证书)导入IIS后,绑定网站时直接选择该证书即可,具体步骤:

      1. 按上述方法将SAN证书导入IIS“个人”存储区;
      2. 在网站绑定中选择“https”类型,下拉列表中会显示证书的所有域名(主域名+附加域名);
      3. 选择对应证书完成绑定,若证书未显示所有域名,需检查证书是否包含SAN扩展字段(可通过openssl x509 in domain.crt text noout查看Subject Alternative Name字段)。

      如何在IIS上配置PEM SSL证书?详细步骤是怎样的? 第3张

0