在Apache服務器上安裝SSL證書
發布時間: 2022/01/04
本章節介紹如何將下載的證書安裝到Apache服務器上。安裝好證書後,您的Web服務器將能支持SSL通信。
如果證書安裝過程中遇到問題,華為雲提供SSL證書配置優化服務,可實現雲上全品牌SSL證書配置,工程師一對一服務。請直接單擊一對一谘詢進行購買,購買服務後,聯係工程師進行處理。
前提條件
- “證書狀態”為 “已簽發”。
- 已下載SSL證書,具體操作請參見下載證書。
約束條件
- 證書安裝前,務必在安裝SSL證書的服務器上開啟 “443”端口,同時在組增加 “443”端口,避免安裝後仍然無法啟用HTTPS。
- 如果一個域名有多個服務器,則每一個服務器上都要部署。
- 待安裝證書的服務器上需要運行的域名,必須與證書的域名一一對應,即購買的是哪個域名的證書,則用於哪個域名。否則安裝部署後,瀏覽器將提示不。
操作步驟
在Apache服務器上安裝SSL證書的流程如下所示:
①獲取文件 → ②創建目錄 → ③修改配置文件 → ④重啟Apache → ⑤效果驗證
步驟一:獲取文件
安裝證書前,需要獲取證書文件和密碼文件,請根據申請證書時選擇的 “證書請求文件”生成方式來選擇操作步驟:
- 如果申請證書時, “證書請求文件”選擇 “係統生成CSR”。
- 如果申請證書時, “證書請求文件”選擇 “自己生成CSR”。
具體操作如下:
- 係統生成CSR
- 在本地解壓已下載的證書文件。
- 從 “ 證書ID_ 證書綁定的域名_Apache”文件夾內獲得證書文件 “ 證書ID_ 證書綁定的域名_ca.crt”, “ 證書ID_ 證書綁定的域名_server.crt”和私鑰文件 “ 證書ID_ 證書綁定的域名_server.key”。
- “ 證書ID_ 證書綁定的域名_ca.crt”文件包括**中級CA證書代碼 “-----BEGIN CERTIFICATE-----”和 “-----END CERTIFICATE-----”。
- “ 證書ID_ 證書綁定的域名_server.crt”文件包括**服務器證書代碼 “-----BEGIN CERTIFICATE-----”和 “-----END CERTIFICATE-----”。
- “ 證書ID_ 證書綁定的域名_server.key”文件包括**私鑰代碼 “-----BEGIN RSA PRIVATE KEY-----”和 “-----END RSA PRIVATE KEY-----”。
- 自己生成CSR
- 解壓已下載的證書壓縮包,獲得 “ 證書ID_ 證書綁定的域名_server.pem”文件。
“ 證書ID_ 證書綁定的域名_server.pem”文件包括兩段證書代碼 “-----BEGIN CERTIFICATE-----”和 “-----END CERTIFICATE-----”,分別為服務器證書和中級CA證書。
- 拷貝 “ 證書ID_ 證書綁定的域名_server.pem”文件的開始段證書代碼(服務器證書),並另存為 “server.crt”文件。
- 拷貝 “ 證書ID_ 證書綁定的域名_server.pem”文件的段證書代碼(中級CA),並另存為 “ca.crt”文件。
- 將 “ca.crt”、 “server.crt”和生成CSR時的私鑰 “server.key”放在任意文件夾內。
- 解壓已下載的證書壓縮包,獲得 “ 證書ID_ 證書綁定的域名_server.pem”文件。
步驟二:創建目錄
在Apache的安裝目錄下創建 “cert”目錄,並且將 “server.key”、 “server.crt”和 “ca.crt”拷貝到 “cert”目錄下。
步驟三:修改配置文件
- 配置Apache中“conf”目錄下的 “httpd.conf”文件。
- 用文本編輯器打開Apache根目錄下 “conf/httpd.conf”文件。
- 找到以下2個參數,並刪除行首的配置語句注釋符號 “#”。
#LoadModule ssl_module modules/mod_ssl.so(如果找不到請確認是否編譯過openssl插件) #Include conf/extra/httpd-ssl.conf
- 修改後,保存 “httpd.conf”文件並退出編輯。
- 配置Apache中“conf/extra”目錄下的 “httpd-ssl.conf”文件。
- 用文本編輯器打開Apache根目錄下 “conf/extra/httpd-ssl.conf”文件(由於操作係統及安裝方式的不同, “httpd-ssl.conf”文件也可能存放在“conf.d/ssl.conf”目錄下)。
- 配置證書綁定的域名。
找到並修改如下參數:
ServerName www.example.com:443
完整配置如下(以 “www.domain.com”為例):
ServerName www.domain.com:443 #用戶服務器的域名
- 配置證書公鑰。
找到並修改如下參數:
SSLCertificateFile "${SRVROOT}/conf/server.crt"
設置證書公鑰文件 “server.crt”文件的路徑,且路徑中不能包含中文字符,例如 “cert/server.crt”。
完整配置如下:
SSLCertificateFile " cert/server.crt"
- 配置證書私鑰。
新增如下參數:
SSLCertificateKeyFile "${SRVROOT}/conf/server.key"
設置為 “server.key”文件的路徑,且路徑中不能包含中文字符,例如 “cert/server.key”。
完整配置如下:
SSLCertificateKeyFile "cert/server.key"
- 配置證書鏈。
找到並修改如下參數:
#SSLCertificateChainFile "${SRVROOT}/conf/server-ca.crt"
刪除行首的配置語句注釋符號 “#”,並設置為 “ca.crt”文件的路徑,且路徑中不能包含中文字符,例如 “cert/ca.crt”。
完整配置如下:
SSLCertificateChainFile " cert/ca.crt"
- 修改後,保存 “httpd-ssl.conf”文件並退出編輯。
步驟四:重啟Apache
執行以下操作重啟Apache,使配置生效。
- 在Apache bin目錄下執行 apachectl -k stop命令停止Apache服務。
- 在Apache bin目錄下執行 apachectl -k start命令開啟Apache服務。
效果驗證
部署成功後,可在瀏覽器的地址欄中輸入 “http://域名”,按 “Enter”。
如果瀏覽器地址欄顯示鎖標識,則說明證書安裝成功。