知識庫

如何在 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 安裝 指南