知識庫

在 Apache 安裝 SSL 證書

在您開始SSL安裝過程之前,請確保已生成CSR代碼,所有驗證要求已滿足,以及從ZTABOX電子郵件中簽發並下載了SSL證書

接下來的前提條件旨在簡化SSL安裝並幫助您避免常見的錯誤:

  • 通過SSH訪問主機伺服器的配置。
  • 網站應該通過HTTP連接運行(默認端口80)
  • 私鑰應與SSL證書匹配並存放在同處。查看這篇文章以查找私鑰並使用這個工具進行匹配。

如您所知,有許多Linux發行版可安裝Apache HTTP伺服器。本文將回顧兩個主要操作系統系列的SSL安裝步驟:基於Debian和基於RHEL的系統。

Debian, Ubuntu

為了讓Apache網頁伺服器運行加密的HTTPS連接,請確保使用以下命令啟用SSL模式:

sudo a2enmod ssl

將SSL證書文件(.crt和.ca-bundle)上傳到伺服器的/etc/ssl/文件夾,並將您的私鑰文件(.key)移動到/etc/ssl/private/文件夾以便於管理。

要開始SSL安裝,請找到包含< VirtualHost *:80 >...< /VirtualHost >設置的Apache配置文件,以便于您網站的HTTP連接。
此文件的默認位置可能有所不同,並且取決於伺服器配置和操作系統版本。

在大多數情況下,適當的配置文件(符號鏈接)可以在Debian和Ubuntu操作系統的/etc/apache2/sites-enabled/目錄中找到。

以下命令可能有助於找到正確的配置文件:

apachectl -S

輸出可能會顯示端口(80)、域名(example.com)、配置文件路徑(/etc/apache2/sites-enabled/000-default.conf)和開始HTTP連接的虛擬主機的行號(1)。

apach1

以下輸出表示Apache已經有一個安全HTTPS連接的配置文件,因此您需要根據SSL續期部分進行更新。

apach12

如果您沒有看到安全連接的配置文件(*:443行帶有您的域名),則需要進行新的SSL安裝,請按照以下指示進行:

根據虛擬主機的HTTP連接設置,複製配置文件。此命令可能會有幫助:

cp /etc/apache2/sites-available/your_website.conf
/etc/apache2/sites-available/your_website-ssl.conf

注意!新配置文件應在sites-available目錄中創建。

使用任何文本編輯器打開新配置文件,將端口更改為443(HTTPS連接的默認端口)並添加SSL指令。新的443端口的虛擬主機示例可能看起來如下:

< VirtualHost *:443 >
ServerName example.com
DocumentRoot /var/www/

SSLEngine on
SSLCertificateFile /etc/ssl/example_com.crt
SSLCertificateKeyFile /etc/ssl/private/example_com.key
SSLCertificateChainFile /etc/ssl/example_com.ca-bundle
< /VirtualHost >

注意! 從Apache 2.4.8開始,'SSLCertificateChainFile'指令已過時。中介證書(CA捆綁)可以直接添加到'SSLCertificateFile'之後。

通過運行以下命令啟用新的SSL配置文件:

sudo a2ensite your_website-ssl.conf

當創建新的虛擬主機時,保存文件並運行語法檢查:

apachectl -t

如果系統顯示'語法正確',請運行以下命令重新加載Apache以使更改生效:

sudo service apache2 reload

如果出現語法錯誤,系統將立即顯示以進行故障排除。

SSL安裝可以使用這些工具進行驗證:這裡這裡

為了保存SEO排名,建議將所有HTTP請求永久重定向到網站的安全HTTPS版本。

注意!如果您使用的是多域名通配符證書,則需要修改為每個域/子域的配置文件,除非該域用作ServerAlias。您需要指定要保護的域/子域,並在虛擬主機記錄中按照上述方式引用相同的證書文件。

CentOS, Fedora, Red Hat Enterprise Linux (RHEL)

為了使Apache網頁伺服器運行加密的HTTPS連接,請確保安裝mod_ssl,使用以下命令:

sudo yum install mod_ssl

將SSL證書文件(.crt和.ca-bundle)上傳到伺服器的/etc/pki/tls/certs/文件夾,並將您的私鑰文件.key移到/etc/pki/tls/private/以便管理。

要開始SSL安裝,請找到包含< VirtualHost *:80 >...< /VirtualHost >設置的Apache配置文件,以便于您網站的HTTP連接。
此文件的默認位置可能有所不同,並且取決於伺服器配置和操作系統版本。
在大多數情況下,適當的設置可以在CentOS、Fedora、RHEL操作系統的/etc/httpd/conf/httpd.conf文件中找到。

以下命令可能會對定位正確的配置文件有幫助:

httpd -S

輸出可能顯示端口(80)、域名(example.com)、配置文件路徑(/etc/httpd/conf/httpd.conf)和虛擬主機的行號(355),該虛擬主機開始HTTP連接。

apach3

接下來的輸出指出Apache已經有一個安全HTTPS連接的配置文件,因此您需要根據SSL續期部分進行更新。

apach4

如果您沒有看到帶有域名的443端口行,請在同一配置文件中創建80端口的虛擬主機塊的副本,將端口更改為443(HTTPS連接的默認端口),並添加SSL指令。新的443端口虛擬主機示例可能如下所示:

< VirtualHost *:443 >
ServerName example.com
DocumentRoot /var/www/

SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/example_com.crt
SSLCertificateKeyFile /etc/pki/tls/certs/example_com.key
SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle

< /VirtualHost >

注意! 從Apache 2.4.8開始,'SSLCertificateChainFile'指令已過時。中介證書(CA捆綁)可以直接添加到'SSLCertificateFile'之後。

當新虛擬主機創建時,保存文件並運行語法檢查:

httpd -t

如果系統顯示'語法正確',請運行以下命令重新加載Apache以使更改生效:

sudo service httpd reload

如果出現任何語法錯誤,系統將立即顯示以供排查。

SSL安裝可以使用這些工具進行驗證:這裡這裡

為了保存SEO排名,建議將所有HTTP請求永久重定向到網站的安全HTTPS版本。

注意!如果您使用的是多域名或通配符證書,則需要修改每個為其簽發SSL證書的域/子域的配置文件,除非該域用作ServerAlias。您需要指定要保護的域/子域,並在虛擬主機記錄中按照上述方式引用相同的證書文件。

SSL續期

SSL續期指令略有不同,當任何SSL證書之前已經為此網站安裝時可能會有用。要獲取具有延長到期日期的新SSL證書,請確保已完成所有續期步驟。

一旦您擁有續期的SSL證書文件(.crt和.ca-bundle),請將其上傳到您的託管伺服器,並像上面所描述的那樣找到包含當前HTTPS設置的Apache配置文件。

使用任何文本編輯器打開該文件,並更新指向新證書、CA捆綁和私鑰文件的路徑,位於伺服器區塊< VirtualHost *:443 >...< /VirtualHost >中,並包含為您的域名指定的ServerName

當現有的虛擬主機更新後,請保存該文件並運行語法檢查:

apachectl -t(Debian, Ubuntu等)
httpd -t(RHEL, CentOS等)

如果系統顯示'語法正確',請運行以下命令重新加載Apache以使更改生效:

sudo service apache2 reload(Debian, Ubuntu等)
sudo service httpd reload(RHEL, CentOS等)

SSL安裝和新到期日期可以使用這些工具進行驗證:這裡這裡