全部產品
Search
文件中心

Certificate Management Service:雲端服務器部署:部署 SSL 憑證至 ECS/Simple Application Server

更新時間:Dec 04, 2025

手動管理雲端服務器的SSL認證流程複雜、易出錯,且續期時需重複操作。為解決此問題,數位憑證管理服務提供了自動化部署功能,可將認證一鍵部署至指定的ECS可信執行個體,或將新認證自動更新至已配置認證的ECS及Simple Application Server,以提升部署效率並降低配置風險。

部署方案選型

請根據您的伺服器類型和部署情境,選擇合適的方案。

特性

方法一:一鍵部署(適用於首次部署)

方法二:手動部署(適用於更新認證)

核心機制

全自動化。私密金鑰不出執行個體,通過PKCS#11介面與硬體可信模組通訊,安全性高。

半自動化。將認證檔案上傳至伺服器指定路徑,覆蓋舊檔案。

適用伺服器

僅支援部分Elastic Compute Service可信執行個體(第七/八代x86架構),不支援Simple Application Server。

支援所有ECS執行個體Simple Application Server

適用作業系統

Alibaba Cloud Linux 3.x、Ubuntu 22.04 UEFI鏡像。

所有主流Linux和Windows Server發行版。

適用Web伺服器

僅支援通過yumapt源安裝的特定版本Nginx。

支援Nginx、Apache、Tomcat等所有Web伺服器。

SSL認證要求

RSA演算法的單網域名稱SSL認證。

所有類型的SSL認證。

適用情境

在合格ECS可信執行個體上首次部署認證,以實現後續全自動續期。

更新Elastic Compute Service或Simple Application Server中已部署的認證。

說明

若上述方案均不滿足需求,請參考SSL 憑證部署方案選型選擇合適的部署方案。

一鍵部署(首次部署至ECS可信執行個體)

此方案通過與ECS可信執行個體的安全模組整合,實現認證和私密金鑰的全自動化、高安全部署。若購買的為多年期認證,後續認證續簽後,系統將自動完成更新。

適用範圍

  • 執行個體類型與規格:基於x86架構的第七代和第八代ECS可信執行個體(詳情可參見建立可信執行個體)。不支援Simple Application Server。

  • 作業系統:Alibaba Cloud Linux 3.x、Ubuntu 22.04 UEFI鏡像。

  • Web伺服器:通過yumapt源安裝的特定版本Nginx。

    • Alibaba Cloud Linux3.x鏡像:通過yum安裝的Nginx,版本為 1.18.0-2.1.al8 至 1.20.1-1.0.5.al8(不含)。

    • Ubuntu22.04 UEFI鏡像:通過apt安裝的Nginx。

  • 認證類型及狀態:RSA演算法的單網域名稱SSL認證,且狀態必須為已簽發

  • 伺服器許可權:需要使用 root 賬戶或一個具有 sudo 許可權的賬戶。

  • 網域名稱解析:網域名稱已配置解析記錄並解析至伺服器的公網 IP。

步驟一:確認ECS雲助手狀態正常

需確保ECS已正確安裝雲助手(cloudAssistant),否則無法在控制台實現一鍵部署SSL認證。

  1. 訪問ECS控制台-雲助手

  2. 選擇目標資源所在的資源群組和地區。

  3. ECS執行個體頁簽下,定位至目標ECS伺服器,在雲助手狀態列查看狀態。

    說明

    若未安裝或雲助手狀態異常請參見查看雲助手狀態及異常狀態處理進行處理。

步驟二:在ECS中配置Nginx Web應用伺服器

首次部署需要修改Nginx設定檔,使其能夠通過PKCS#11介面調用可信模組中的私密金鑰。後續更新則無需此操作。

Alibaba Cloud Linux 3.x鏡像

說明

本文以Nginx 1.20.1版本為例進行介紹。/etc/nginx/為通過 yum 安裝Nginx的預設安裝目錄。若修改過該目錄,請根據實際配置調整。

  1. 確認 Nginx 版本。

    當前僅支援 Nginx的1.18.0-2.1.al8 ~ 1.20.1-1.0.5.al8(不包含此版本)。

    重要

    如果Elastic Compute Service已安裝Nginx,需要您在使用一鍵部署功能前檢查Nginx的安裝版本是否支援,否則需要您將Nginx降低至支援的版本,或重新安裝。

  2. 開啟/etc/nginx/nginx.conf設定檔,並在pid /run/nginx.pid;後添加ssl_engine pkcs11;,以指定使用PKCS#11加密庫。添加位置及完整樣本:

    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # 指定使用PKCS#11加密庫
    ssl_engine pkcs11;
  3. 開啟/etc/nginx/nginx.conf設定檔,取消Settings for a TLS enabled server注釋並添加include "/etc/acm/ssl/nginx-acm.conf";用於引用SSL密鑰配置。

    • 新增內容:

      include "/etc/acm/ssl/nginx-acm.conf";
    • 添加位置及完整樣本:

      server {
              listen       443 ssl http2;
              listen       [::]:443 ssl http2;
             
              # 指定主機名稱或公用NAME(CN)
              server_name  example.com;
              root         /usr/share/nginx/html;
      
              ssl_session_cache shared:SSL:1m;
              ssl_session_timeout  10m;
              ssl_prefer_server_ciphers on;
             
              # 引用SSL密鑰配置
              include "/etc/acm/ssl/nginx-acm.conf";
             
              # Load configuration files for the default server block.
              include /etc/nginx/default.d/*.conf;
      
              error_page 404 /404.html;
                  location = /40x.html {
              }
      
              error_page 500 502 503 504 /50x.html;
                  location = /50x.html {
              }
          }
  4. 開啟/usr/lib/systemd/system/nginx.service檔案,添加P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sockOPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf用於配置與SSL密鑰服務的通訊。

    1. 新增內容:

      Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock"
      Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf"
    2. 添加位置及完整樣本:

      [Unit]
      Description=A high performance web server and a reverse proxy server
      Documentation=man:nginx(8)
      After=network.target nss-lookup.target
      
      [Service]
      Type=forking
      PIDFile=/run/nginx.pid
      ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
      ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
      ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
      ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
      TimeoutStopSec=5
      KillMode=mixed
      
      # 配置與SSL密鑰服務的通訊
      Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock"
      Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf"
      
      [Install]
      WantedBy=multi-user.target
      說明

      如果您不清楚Nginx的systemd服務組態檔路徑,可執行sudo find / -name "nginx.service"尋找。

  5. 執行以下命令,重載Nginx systemd服務配置。

    systemctl daemon-reload

Ubuntu 22.04鏡像

說明

本樣本是以Nginx 1.18.0版本為例介紹。/etc/nginx/為使用apt安裝Nginx的預設安裝目錄。若手動修改過該目錄或使用其他方式安裝的Nginx,請根據實際配置調整。

  1. 開啟/etc/nginx/nginx.conf設定檔,並在pid /run/nginx.pid;後添加ssl_engine pkcs11;用於指定使用SSL/TLS加密庫。添加位置及完整樣本:

    user www-data;
    worker_processes auto;
    pid /run/nginx.pid;
    
    # 指定使用PKCS#11加密庫
    ssl_engine pkcs11;
    
    include /etc/nginx/modules-enabled/*.conf;
  2. 開啟/etc/nginx/sites-enabled/default檔案,在default檔案中建立server塊並添加include "/etc/acm/ssl/nginx-acm.conf";

    1. 新增內容:

      include "/etc/acm/ssl/nginx-acm.conf";
    2. 添加位置及完整樣本:

      server {
          listen 443 ssl;
          
          # 指定主機名稱或公用NAME(CN)
          server_name example.com;
          root /var/www/html;
          index index.html index.htm;
          access_log /var/log/nginx/access_6equj5.log;
          error_log /var/log/nginx/error_6equj5.log;
          ssl on;
          
          # 引用SSL密鑰配置
          include "/etc/acm/ssl/nginx-acm.conf";
      
          location / {
            try_files $uri $uri/ =404;
          }
      }
  3. 開啟/usr/lib/systemd/system/nginx.service檔案,添加P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sockOPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf用於配置與SSL密鑰服務的通訊。

    說明

    如果您不清楚Nginx的systemd服務組態檔路徑,可執行sudo find / -name "nginx.service"尋找。

    1. 新增內容:

      Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock"
      Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf"
    2. 添加位置及完整樣本:

      [Unit]
      Description=A high performance web server and a reverse proxy server
      Documentation=man:nginx(8)
      After=network.target nss-lookup.target
      
      [Service]
      Type=forking
      PIDFile=/run/nginx.pid
      ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
      ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
      ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
      ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
      TimeoutStopSec=5
      KillMode=mixed
      
      # 配置與SSL密鑰服務的通訊
      Environment="P11_KIT_SERVER_ADDRESS=unix:path=/etc/acm/ssl/acm-p11-kit.sock"
      Environment="OPENSSL_CONF=/etc/acm/ssl/openssl-acm.cnf"
      
      [Install]
      WantedBy=multi-user.target
  4. 執行以下命令,重載Nginx systemd服務配置。

    systemctl daemon-reload

步驟三:通過認證控制台部署認證

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

  2. 在左側導覽列,選擇部署和资源管理 > 雲端服務器部署

  3. 雲端服務器部署頁面,單擊創建任務,按照以下步驟部署SSL認證。

    1. 基礎配置引導頁,自訂任務名稱,單擊下一步

    2. 選擇認證引導頁,選擇認證類型以及關聯雲端服務器的SSL認證,單擊下一步

      每個部署任務僅支援選擇一張認證進行部署,如需部署多個認證,請建立多個部署任務。

    3. 選擇資源引導頁,選擇支援一鍵部署的ECS執行個體,單擊下一步

      image

      • 系統會自動識別並拉取當前阿里雲帳號下所有合格ECS執行個體。如未顯示資源,請在左上方資源總數地區單擊同步雲產品資源。資源同步時間取決於您的當前雲產品的資源數,請您耐心等待。

      • 若列表中的執行個體資源較多,可通過全部類型下拉式清單,選擇一鍵部署/手動部署快速篩選支援的執行個體。

  4. 一鍵部署頁簽,確認是否已滿足認證部署環境,如確認已滿足,請勾選確認以上步驟已經完成,並單擊繼續部署

  5. 在提示對話方塊,單擊確定

    警告

    重啟Web應用伺服器會對業務造成影響,建議您在業務低峰期進行部署。

    image

    • 手動重啟Nginx命令參考:

      systemctl restart nginx.service
    • 重啟後可通過curl命令測試Nginx SSL的連結情況。命令格式為curl -v https://<認證綁定的網域名稱>

步驟四:確認部署任務狀態

雲端服務器部署頁面,找到您建立的任務,如果任務狀態部署成功,表示已成功將認證上傳至雲端服務器中。

image

步驟五:驗證SSL認證是否生效

部署任務執行成功不代表認證生效,您仍需通過訪問網域名稱查看認證的生效情況。

  1. 請通過 HTTPS 訪問您已綁定認證的網域名稱(如 https://example.comexample.com 需替換為實際網域名稱)。

  2. 若瀏覽器地址欄顯示安全鎖表徵圖,說明認證已成功部署。如訪問異常或未顯示安全鎖,請先清除瀏覽器緩衝或使用無痕(隱私)模式重試。

    image

    Chrome 瀏覽器自 117 版本起,地址欄中的image已被新的image替代,需單擊該表徵圖後查看安全鎖資訊。

手動部署(更新已有認證)

此方案用於將新認證更新到已配置過認證的雲端服務器(ECS或Simple Application Server),通過覆蓋舊認證檔案來簡化續期和更換流程。不適用於首次部署。

適用範圍

  • 雲端服務器類型:僅適用於阿里雲雲端服務器(Simple Application ServerElastic Compute Service)。

  • Web伺服器:僅支援Nginx/Apache等直接引用PEM、CRT格式認證的Web環境,不支援IIS。

  • 伺服器許可權:需要使用 root 賬戶或一個具有 sudo 許可權的賬戶。

步驟一:部署SSL認證

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

  2. 在左側導覽列,選擇部署和资源管理 > 雲伺服器部署

  3. 雲伺服器部署頁面,單擊創建任務

    1. 基礎配置引導頁,填寫任務名稱後,單擊下一步

    2. 選擇認證引導頁,選擇證書類型,勾選關聯認證後,單擊下一步

      • 通過私人CA服務簽發的認證會同步至上傳證書頁簽。

    3. 選擇資源引導頁,選擇雲端服務器類型,勾選目標執行個體後,單擊下一步。首次進入該頁面,系統會自動識別並拉取當前阿里雲帳號下所有合格雲端服務器執行個體(即雲端服務器中部署了Web應用)。

      說明

      如未顯示資源,請單擊資源總數地區的同步雲產品資源手動同步,同步時間和雲產品的資源數相關,請耐心等待。

      image

    4. 部署配置引導頁,參考下表進行配置,單擊確定

      重要

      憑證路徑私密金鑰路徑必須和Web應用中配置的憑證路徑一致,否則認證不會生效。

      下圖為雲端服務器中Nginx的認證檔案配置路徑,僅供參考:

      image

      配置項

      描述

      配置樣本(僅供參考,請以實際部署路徑為準)

      憑證路徑

      認證檔案存放在雲端服務器中的絕對路徑。

      • Linux樣本:/ssl/cert.pem

      • Windows樣本:c:\ssl\cert.pem

      私密金鑰路徑

      認證私密金鑰檔案存放在雲端服務器中的絕對路徑。

      • Linux樣本:/ssl/cert.key

      • Windows樣本:c:\ssl\cert.key

      憑證鏈結路徑

      憑證鏈結檔案存放在雲端服務器中的絕對路徑。

      說明

      Web應用中已配置憑證鏈結檔案時,請對照填寫該路徑。

      • Linux樣本:/ssl/cert.cer

      • Windows樣本:c:\ssl\cert.cer

      重啟命令

      如果配置了重啟命令,在部署認證後,將執行此命令重啟雲端服務器中的Web應用或重新載入Web應用設定檔,以使認證生效。

      重要

      如出現Web應用重啟失敗的情況,請前往對應的雲端服務器進行操作。

      • 重新載入Nginx設定檔的命令為sudo nginx -s reload

      • 重啟Apache服務的命令為sudo systemctl restart httpd

    5. 在彈出的對話方塊單擊確定

      • 如果未配置重啟命令,則提示如下。單擊確定後,請登入對應雲端服務器手動重啟Web應用服務,以確保認證立即生效。

        image

      • 如果配置了重啟命令,則提示如下。請確認風險後單擊確定,部署任務結束後會執行重啟命令重啟伺服器,以確保認證立即生效。

        image

步驟二:確認部署任務狀態

雲伺服器部署頁面,找到您建立的任務,任務狀態部署成功,即表示已成功將認證更新至雲端服務器中。

image

步驟三:驗證SSL認證是否生效

  1. 請通過 HTTPS 訪問您已綁定認證的網域名稱(如 https://example.comexample.com 需替換為實際網域名稱)。

  2. 若瀏覽器地址欄顯示安全鎖表徵圖,說明認證已成功部署。如訪問異常或未顯示安全鎖,請先清除瀏覽器緩衝或使用無痕(隱私)模式重試。

    image

    Chrome 瀏覽器自 117 版本起,地址欄中的image已被新的image替代,需單擊該表徵圖後查看安全鎖資訊。

說明

如仍有問題,請參考常見問題進行排查。

配額與限制

  • 部署費用

    • 部署正式認證:免費,不消耗部署次數。

    • 部署您自行上傳的認證:消耗部署次數。部署次數需購買部署次數包,費用為30元/次。部署失敗時,將返還相應的部署次數。

  • 配額限制

    每個部署任務僅支援將一張認證部署至一個雲端服務器執行個體。如需為多個執行個體部署,請建立多個任務。

應用於生產環境

  • 服務中斷風險:兩種部署方法最終都可能需要重啟Web服務(如Nginx、Apache),這將導致服務在重啟期間短暫中斷。強烈建議您在業務低峰期執行部署操作

  • 平滑重載:對於支援平滑重載(reload)的Web伺服器(如Nginx),在“方法二”的重啟命令中,建議使用nginx -s reloadsystemctl reload nginx代替restart,以減少對現有串連的影響。

  • 監控與警示:建議在認證部署完成後,為網域名稱開啟網域名稱監控功能。阿里雲將自動檢測認證有效期間,並在認證到期前發送提醒,協助您及時續期,避免服務中斷。具體操作請參見購買並開啟公網網域名稱監控

常見問題

安裝或更新認證後,認證未生效或 HTTPS 無法訪問

常見原因如下:

  • 伺服器安全性群組或防火牆未開放 443 連接埠。

  • 認證的綁定網域名稱未包含當前訪問的網域名稱。

  • 部署任務的任務狀態異常,請前往任務詳情頁,單擊查看失敗原因後,根據提示更新相關配置後重試。

部署報錯“the cloud Assistant not install or run”怎麼辦?

image

原因:未安裝ECS雲助手或 ECS雲助手狀態異常。