全部產品
Search
文件中心

Certificate Management Service:在Apache伺服器上安裝SSL認證

更新時間:Jun 30, 2024

本文介紹如何在Apache伺服器配置SSL認證,具體包括下載和上傳認證檔案,在Apache上配置認證檔案、憑證鏈結和認證密鑰等參數,以及安裝認證後結果的驗證。成功配置SSL認證後,您將能夠通過HTTPS加密通道安全訪問Apache伺服器,確保資料轉送的安全性。

重要

本文以CentOS作業系統、Apache 2.4.7為例介紹。不同版本的作業系統或Web伺服器,部署操作可能有所差異,如有問題,請聯絡商務經理進行諮詢

前提條件

  • 已通過數位憑證管理服務控制台簽發認證。具體操作,請參見購買SSL認證提交認證申請

  • SSL認證綁定的網域名稱已完成DNS解析,即您的網域名稱與主機IP地址相互映射。您可以通過DNS驗證認證工具,檢測網域名稱DNS解析是否生效。具體操作,請參見DNS生效驗證

  • Apache伺服器已安裝mod_ssl.so模組(啟用SSL功能)。

    如未安裝,可執行yum install -y mod_ssl命令安裝。安裝後,可執行httpd -M | grep 'ssl'檢查mod_ssl.so是否安裝成功。

    安裝成功效果圖:

    image..png

步驟一:下載SSL認證

  1. 登入數位憑證管理服務控制台

  2. 在左側導覽列,選擇認證管理 > SSL認證管理

  3. SSL 憑證頁面,定位到目標認證,在操作列,單擊下載

  4. 伺服器類型為Apache的操作列,單擊下載

    image..png

  5. 解壓縮已下載的SSL認證壓縮包。

    根據您在提交認證申請時選擇的CSR產生方式,解壓縮獲得的檔案不同,具體如下表所示。in

    CSR產生方式

    認證壓縮包包含的檔案

    系統產生

    • 認證檔案(CRT格式):預設以認證綁定網域名稱_public命名。CRT格式的認證檔案採用Base64-encoded編碼的文字檔。

    • 憑證鏈結檔案(CRT格式):預設以認證綁定網域名稱_chain命名。

    • 私密金鑰檔案(KEY格式):預設以認證綁定網域名稱命名。

    手動填寫

    • 如果您填寫的是通過數位憑證管理服務控制台建立的CSR,下載後包含的認證檔案與系統產生的一致。

    • 如果您填寫的不是通過數位憑證管理服務控制台建立的CSR,下載後只包括認證檔案(PEM格式),不包含認證密碼或私密金鑰檔案。您可以通過認證工具,將認證檔案和您持有的認證密碼或私密金鑰檔案轉換成所需格式。轉換認證格式的具體操作,請參見認證格式轉換

步驟二:在Apache伺服器安裝認證

  1. 執行以下命令,在Apache的安裝目錄下建立一個用於存放認證的cert目錄。

    1. 進入Apache的安裝目錄。

      cd /etc/httpd/ #使用yum安裝Apache的預設安裝目錄。如果您手動修改過該目錄或使用其他方式安裝的Apache,請根據實際配置調整。
    2. 建立cert目錄。

      mkdir cert #建立認證目錄,命名為cert。
  2. 將認證檔案和私密金鑰檔案上傳到Apache伺服器的認證目錄(/etc/httpd/cert)。

    說明

    您可以使用遠程登入工具附帶的本地檔案上傳功能,上傳檔案。例如PuTTy、Xshell或WinSCP等。如果您使用的阿里雲Elastic Compute Service,上傳檔案具體操作,請參見上傳或下載檔案(Windows)上傳檔案到Linux雲端服務器

  3. 編輯Apache設定檔httpd.conf和ssl.conf,修改與認證相關的配置。

    1. 找到LoadModule ssl_module modules/mod_ssl.so(用於載入mod_ssl.so模組啟用SSL服務) 和Include conf.modules.d/*.conf(用於載入SSL配置目錄),並檢查是否被注釋,如果被注釋,請刪除#注釋。

      重要

      由於作業系統以及Apache安裝方式不同,以上檔案所處的位置也不同。可能出現在Apache目錄的以下位置:

      • conf.modules.d/00-ssl.conf:本文中LoadModule ssl_module modules/mod_ssl.so位於該設定檔下。

      • httpd.conf:本文中Include conf.modules.d/*.conf位於該設定檔下。

      • http-ssl.conf

      如果仍未找到以上參數,請確認您的Apache伺服器中是否已經安裝mod_ssl.so模組。如未安裝,可執行yum install -y mod_ssl命令安裝,安裝後,可執行httpd -M | grep 'ssl'命令檢查mod_ssl.so是否安裝成功。

    2. 執行以下命令,開啟ssl.conf設定檔。

      vim /etc/httpd/conf.d/ssl.conf
      重要

      ssl.conf檔案在不同作業系統的位置和名稱不一樣,在沒有ssl.conf檔案的情況下,請您查看Apache安裝目錄是否存在conf/extra/http-ssl.conf設定檔。

    3. 在ssl.conf設定檔中,定位到以下參數,按照中文注釋修改。

      <VirtualHost *:443> 
       ServerName #修改為申請認證時綁定的網域名稱。 
       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替換成您認證的憑證鏈結檔案名稱。
       
       #自訂設定使用的TLS協議的類型以及加密套件(以下為配置樣本,請您自行評估是否需要配置)
       #TLS協議版本越高,HTTPS通訊的安全性越高,但是相較於低版本TLS協議,高版本TLS協議對瀏覽器的相容性較差。
       #SSLProtocol all -SSLv2 -SSLv3 # 添加SSL協議支援協議,去掉不安全的協議。
       #SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。
      </VirtualHost>
      
      #如果認證包含多個網域名稱,複製VirtualHost參數,並將ServerName修改為第二個網域名稱。 
      <VirtualHost *:443> 
       ServerName #修改為申請認證時綁定的第二個網域名稱。 
       SSLCertificateFile cert/domain_name2_public.crt # 將domain_name2替換成您申請認證時的第二個網域名稱。
       SSLCertificateKeyFile cert/domain_name2.key # 將domain_name2替換成您申請認證時的第二個網域名稱。
       SSLCertificateChainFile cert/domain_name2_chain.crt # 將domain_name2替換成您申請認證時的第二個網域名稱。
       
       SSLEngine on 
       SSLHonorCipherOrder on
       #自訂設定使用的TLS協議的類型以及加密套件(以下為配置樣本,請您自行評估是否需要配置)
       #TLS協議版本越高,HTTPS通訊的安全性越高,但是相較於低版本TLS協議,高版本TLS協議對瀏覽器的相容性較差。
       #SSLProtocol all -SSLv2 -SSLv3 # 添加SSL協議支援協議,去掉不安全的協議。
       #SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。
      </VirtualHost>
      重要

      請關注您的瀏覽器版本是否支援SNI功能。如果不支援,多網域名稱認證配置將無法生效。

    4. 可選:修改conf/httpd.conf檔案,設定HTTP請求自動跳轉HTTPS。

      httpd.conf檔案中添加以下重新導向代碼。

      RewriteEngine on
      RewriteCond %{SERVER_PORT} !^443$
      RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
  4. 重啟Apache伺服器使SSL配置生效。

    1. 執行apachectl -k stop停止Apache服務。

    2. 執行apachectl -k start開啟Apache服務。

步驟三:驗證SSL認證是否安裝成功

認證安裝完成後,您可通過訪問認證的綁定網域名稱驗證該認證是否安裝成功。

https://yourdomain   #需要將yourdomain替換成認證綁定的網域名稱。

如果網頁地址欄出現小鎖標誌,表示認證已經安裝成功。

image..png

相關文檔