您現在的位置是:首頁 > 其他

李清波 2019-08-21 其他 569

在Apache服務器上安裝SSL證書

通過證書服務申請的數字證書,可以按照通常的方式配置到各種Web服務容器中。

但有些數字證書是帶有證書鏈的,在Apache服務器中配置需要按以下步驟進行操作。

拉到中間有完整的安裝步驟

1. 檢查您的數字證書是否帶有證書鏈

使用文本編輯器打開您的數字證書文件(例如mycert.pem)檢查您的數字證書是否帶有證書鏈。

如果您的證書文件中有三段BEGIN CERTIFICATE信息,說明您的數字證書包含證書鏈。

如果您的數字證書不包含證書鏈,則無需執行后續操作,直接在Apache服務器中配置即可,參考在Apache服務器上安裝SSL證書。

-----BEGIN CERTIFICATE-----
xxxxxx...
-----END CERTIFICATE-----


-----BEGIN CERTIFICATE-----
xxxxxx...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
xxxxxx...
-----END CERTIFICATE-----

2. 分離證書鏈

使用文本編輯器打開您的數字證書文件,復制后兩段證書信息(即后兩段-----BEGIN CERTIFICATE-----)內容到新的文本文件中,并另存為mycert_chain.pem,即可分離您的數字證書中的證書鏈。

3. 修改文件名稱

將原證書文件名稱修改為mycert.pem。這樣,您就有了兩個pem文件,分別是原證書文件mycert.pem和證書鏈文件mycert_chain.pem。

4. 配置Apache

在Apache服務器的配置文件中進行如下配置即可。

...SSLEngine On 
SSLCertificateFile conf/ssl.crt/mycert.pem 
SSLCertificateKeyFile conf/ssl.key/mycert.key 
SSLCertificateChainFile conf/ssl.crt/mycert_chain.pem 
...


安裝步驟

您可以將從阿里云SSL證書控制臺下載的證書安裝到您的Apache服務器上,使Apache服務器支持HTTPS安全訪問。

前提條件

1、已安裝OpenSSL。

2、本文檔證書名稱以domain name為示例

    如證書文件名稱為domain name_public.crt

    證書鏈文件名稱為domain name_chain.crt

    證書秘鑰文件名稱為domain name.key。

3、申請證書時如果未選擇系統自動創建CSR,證書下載壓縮包中將不包含.key文件。

說明.crt擴展名的證書文件采用Base64-encoded的PEM格式文本文件,可根據需要修改成.pem等擴展名。

操作指南

1、登錄阿里云SSL證書控制臺。

2、在SSL證書頁面,點擊已簽發標簽,定位到需要下載的證書并單擊證書卡片右下角的下載打開證書下載對話框。

1566321750371073.jpg

3、在證書下載對話框中定位到Apache服務器,并單擊右側操作欄的下載將Apache版證書壓縮包下載到本地。

4、解壓Apache證書。

您將看到文件夾中有3個文件:

    證書文件(以.crt為后綴或文件類型)

    證書鏈文件(以.crt為后綴或文件類型)

    秘鑰文件(以.key為后綴或文件類型)

156276401533689_zh-CN.png

5、在Apache安裝目錄中新建cert目錄,并將下載的Apache證書、 證書鏈文件和秘鑰文件拷貝到cert目錄中。

如果申請證書時選擇了手動創建CSR文件,請將手動生成創建的秘鑰文件拷貝到cert目錄中并命名為domain name.key。

6、在Apache安裝目錄下,打開Apache/conf/httpd.conf,在httpd.conf文件中找到以下參數并進行配置。

#LoadModule ssl_module modules/mod_ssl.so  #刪除行首的配置語句注釋符號“#”加載mod_ssl.so模塊啟用SSL服務,Apache默認是不啟用該模塊的。如果找不到該配置,請重新編譯mod_ssl模塊。
#Include conf/extra/httpd-ssl.conf  #刪除行首的配置語句注釋符號“#”。

7、保存httpd.conf文件并退出。

8、打開Apache/conf/extra/httpd-ssl.conf,在httpd-ssl.conf文件中找到以下參數并進行配置。(證書路徑建議使用絕對路徑)

說明根據操作系統的不同,http-ssl.conf文件也可能存放在conf.d/ssl.conf目錄中。

SSLProtocol all -SSLv2 -SSLv3  # 添加SSL協議支持協議,去掉不安全的協議。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 使用此加密套件。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name_public.crt   # 將domain name_public.crt替換成您證書文件名。
SSLCertificateKeyFile cert/domain name.key   # 將domain name.key替換成您證書的秘鑰文件名。
SSLCertificateChainFile cert/domain name_chain.crt  # 將domain name_chain.crt替換成您證書的秘鑰文件名;證書鏈開頭如果有#字符,請刪除。

9、保存httpd-ssl.conf文件配置并退出。

10、重啟Apache服務器使SSL配置生效。

在Apache bin目錄下執行以下命令停止Apache服務。

apachectl -k stop

在Apache bin目錄下執行以下命令開啟Apache服務。

apachectl -k start

11、(可選步驟)設置Apache http自動跳轉https。

在httpd.conf文件中,在`<VirtualHost *:80> </VirtualHost>`中間,添加以下重定向代碼。

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

后續操作

證書安裝完成后,可通過登錄證書綁定域名的方式驗證證書是否安裝成功。

https://domain name   #domain name替換成證書綁定的域名

如果網頁地址欄出現綠色小鎖標志,表示證書安裝成功。

驗證證書是否安裝成功時,如果網站無法通過https正常訪問,需確認您安裝證書的服務器443端口是否已開啟或被其他工具攔截。


評論