在您開始SSL安裝過程之前,請確保已生成CSR代碼,所有驗證要求已滿足,以及從ZTABOX電子郵件中簽發並下載了SSL證書。
接下來的前提條件旨在簡化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)。

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

如果您沒有看到安全連接的配置文件(*: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
如果出現語法錯誤,系統將立即顯示以進行故障排除。
為了保存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連接。

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

如果您沒有看到帶有域名的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
如果出現任何語法錯誤,系統將立即顯示以供排查。
為了保存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等)