知识库

如何在 Apache Web 伺服器之间转移证书

经常会发生一个 SSL 证书在多个服务器上使用的情况。这对于 Wildcard多域名证书 是相当常见的做法,或者对于使用负载平衡的大型网站,这会将网站负载分配到多个服务器上。即使是基本的 单域名证书 也可以这样使用,只要它安装在多个服务器上。

我们提供的所有 Comodo SSL 证书都授权给无限数量的物理服务器。

本指南说明如何将证书文件从一个 Apache 网页服务器转移到另一个。

从 Apache 服务器导出证书文件与备份所有 SSL 安装所需的必要文件一样简单。

那些文件包括:

  • 您的域名证书
  • 私钥
  • CA 包

找到确切的文件目录的最方便方法是检查您的主 Apache 配置文件中的 < virtualhost > 区域:

  1. 打开您用于 SSL 的 Apache 配置文件。通常这是一个常见的 .conf 文件(这包括但不限于 httpd.conf、apache2.conf 或 ssl.conf)。
    各种操作系统和发行版的 Apache HTTPD 的默认安装布局列在 这里

    注意:某些 Apache 实例可能有多个配置文件,但只有其中一个配置文件可以用于 SSL。所有其他拥有 SSL 指令的配置文件必须被注释掉。


  2. 定位您最初配置 SSL 的 < virtualhost > 区域。可以使用以下命令作为 '搜索' 选项:

    search

  3. 在 < virtualhost > 区块中,找到以下指令:

    virtual_host

    • 'SSLCertificateFile' 指令显示您域名证书文件的路径。
      示例: SSLCertificateFile /etc/httpd/conf/ssl/certificate.crt
    • 'SSLCertificateKeyFile' 指向与您的证书文件相关联的私钥文件。
      示例: SSLCertificateKeyFile /etc/httpd/conf/key/private.key
    • 'SSLCertificateChainFile' 指令显示 CA 包或证书授权链文件的位置。
      示例: SSLCertificateChainFile /etc/httpd/conf/ssl/bundle.crt

    证书链是多个证书,称为中介证书,它们通过相互签署将终端用户证书与证书授权根相连接。链中的最后一个证书(根)应该与浏览器存储中的域名证书的副本相匹配,以便证书被信任。

    重要! 'SSLCertificateChainFile' 在 Apache 版本 2.4.8 时变得过时,当时 'SSLCertificateFile' 扩展为也从服务器证书文件加载中介 CA 证书。

    注意:在某些 Apache 实例中,可能会有 'SSLCACertificateFile' 指令。


  4. 复制这些文件,您已准备好进行下一个 Apache 安装。

另一种安全备份和运送证书文件的方法是创建 PFX 备份文件。

PKCS#12 (.pfx) 文件格式包含私钥、域名证书和捆绑在一起的集合作为一个带有密码的备份文件。

要在您的 Apache 网页服务器上创建 PFX 备份文件,请在终端上运行以下命令:

openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt -certfile bundle.crt

其中 'certificate.pfx' 是您的 PKCS#12 (.pfx) 备份文件,'privatekey.key' 是与您的证书相关的密钥文件,'certificate.crt' 是您的域名证书,'bundle.crt' 是证书授权链文件。

在下一步中,系统将要求您输入密码:

password

重要! 请记住您输入的导出密码,否则您将无法提取 SSL 文件。

注意:导出的 .pfx 文件不仅可以用于在另一个 Apache 实例中导入证书、私钥和包,还可以用于任何其他基于 Windows 或 Java 的系统。

提取证书文件。

  1. 要从 [*.pfx] 备份中提取文件,请在导入证书的服务器上运行此命令,并输入您的导出密码:

    openssl pkcs12 -in certificate.pfx -out certificate.crt -nodes

    'certificate.crt' 将包含 PEM 编码的密钥、证书和链。

  2. 用文本编辑器打开 'certificate.crt' 并在里面找到上述文件。
  3. 复制私钥文件并将其保存为 'private.key'。

    它将如下所示:

    -----BEGIN RSA PRIVATE KEY-----
    [编码数据]
    -----END RSA PRIVATE KEY-----

  4. 复制证书文件并将其保存为 'your_domain_name.crt'。

    它将如下所示:

    -----BEGIN CERTIFICATE-----
    [编码数据]
    -----END CERTIFICATE-----

  5. 复制其余的证书并将其保存为 'bundle.crt'。

    捆绑将看起来像一个链:

    -----BEGIN CERTIFICATE-----
    [编码数据]
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    [编码数据]
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    [编码数据]
    -----END CERTIFICATE-----


  6. 现在您已拥有 SSL 安装所需的所有必要文件。

有关如何为 Apache 网页服务器安装 SSL 证书的详细说明,请参阅我们的 Apache 安装 指南