本文旨在協助您在手動部署SSL認證後未生效或網站顯示不安全時,按照手動部署流程逐個排查,協助您發現並解決部署失敗的問題。
確認部署狀態
排查前,先確認 SSL 憑證是否已部署成功:
-
訪問 HTTPS 網域名稱,如果地址欄顯示安全鎖標誌,說明認證已生效。
-
在SSL證書管理頁面查看已部署列,確認雲產品部署狀態。雲產品部署功能支援 SLB、CDN、WAF 等雲產品,不包含 ECS。
-
ECS 伺服器作業系統層面沒有 SSL 憑證部署狀態標識,這是正常現象。
排查步驟
檢查是否已通過工信部ICP備案
您可以通過阿里雲網路診斷工具查看網站是否已備案。如果網站已備案,診斷結果中的備案檢查會顯示網站已備案,並附帶 Ping 檢查等連通性檢測結果。
如果您的網站未通過工信部ICP備案,請先完成備案流程:
檢查伺服器443連接埠是否允許存取
阿里雲ECS伺服器
請前往ECS管理主控台安全性群組頁面,確認入方向規則中已允許存取443連接埠。關於如何配置安全性群組,請參見管理安全性群組。
需確認存在以下安全性群組規則:
- 方向:入方向
- 授權策略:允許
- 協議類型:自訂 TCP
- 連接埠範圍:目的: 443/443
- 授權對象:源: 所有 IPv4 (0.0.0.0/0)(或您允許的用戶端 IP 段)
接入Web Application Firewall(WAF)
如果已接入WAF,請檢查伺服器自身的防火牆設定,確保未阻止外部對443連接埠的訪問:
-
登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中國內地、非中國內地)。
-
在左側導覽列,單擊接入管理。
-
在CNAME接入頁簽,檢查是否允許外部對443連接埠的訪問。
在網域名稱/CNAME 列表中,確認目標網域名稱的連接埠列已包含 HTTPS: 443。
檢查是否使用了 CDN 或 WAF 等 7 層代理服務
如果網域名稱接入了 CDN 或 WAF 等 7 層代理服務,SSL 憑證需要同時配置到 CDN 服務上,不能僅部署在來源站點,否則經 CDN 加速訪問時仍會失敗。
-
在 CDN 控制台的認證服務頁面,為加速網域名稱配置 HTTPS 認證。
-
主網域名稱需要在 CDN 控制台添加加速網域名稱,擷取專屬 CNAME,不能直接使用 www 子網域名稱的 CNAME。
-
如果配置 CDN 後訪問出現 502 錯誤,請在 CDN 的回源配置中開啟回源 SNI,並將其設定為與回源 HOST一致,同時將回源協議設定為跟隨。
檢查Web伺服器設定檔
-
檢查設定檔中的認證檔案路徑是否正確。確保設定檔中指定的憑證路徑和檔案名稱與伺服器上實際存放的位置完全一致。以下是Nginx的配置樣本:
server { listen 443 ssl; server_name example.com; # 請將以下路徑替換為您自己的SSL認證和私密金鑰檔案路徑 ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; # 其他配置... } -
確認設定檔修改後已正確儲存。
-
部分Web伺服器(如Nginx和Apache)修改配置後需要重啟服務才會生效:
-
重啟Nginx服務:
sudo nginx -s reload -
重啟Apache服務:
sudo systemctl restart httpd
-
檢查認證的有效性
-
檢查認證是否在有效期間內:
登入數位憑證管理服務控制台。
在左側導覽列,選擇。
-
在SSL證書管理頁面,定位到您部署的認證,檢查是否到期。
如果認證已到期,請及時續約。具體操作,請參見SSL認證續約及到期處理。
您可在有效期間限列查看認證的套餐時間長度(如 12 個月)和到期日(如 2025-12-12),據此判斷是否需要續約。
-
檢查認證的狀態是否為已簽發,以及綁定網域名稱是否正確。
其中狀態列應顯示已簽發(帶綠色對勾),綁定網域名稱列需與您實際部署的網域名稱一致(可包含主網域名稱及 www 子網域名稱)。
-
確保認證已正確安裝,包括:已將認證檔案放置在正確的目錄,已在Web伺服器(如Nginx、Apache等)設定檔中完成認證配置等。
-
如果您使用的是自我簽署憑證,請確認當前瀏覽器已信任該認證。以下以Chrome瀏覽器為例說明如何確認:
-
在瀏覽器中開啟使用自我簽署憑證的網站。
-
單擊地址欄的
表徵圖:- 如果瀏覽器已信任該認證,地址欄左側不會顯示警告標誌。
- 如果瀏覽器不信任該認證,地址欄左側會出現紅色的
警告圖示。
單擊警告圖示後,會彈出您與此網站之間建立的串連不安全的提示,提醒您不要在該網站輸入密碼、信用卡號等敏感資訊。
-
查看認證詳細資料:在認證資訊視窗中查看詳細資料,如果瀏覽器不信任該認證,會顯示相關警告。
-
-
如果您使用的是非自我簽署憑證,請確認認證由受信任的CA(憑證授權單位)頒發,否則瀏覽器可能因不信任該認證而阻止串連。以下以Chrome瀏覽器為例說明如何確認:
-
查看認證資訊:
-
單擊地址欄左側的
表徵圖。 -
單擊串連是安全的查看串連詳情。
-
單擊認證(有效)或類似選項。如果認證由受信任的CA頒發,瀏覽器會顯示認證有效且沒有警告。
在彈出的安全資訊卡片中,卡片底部會出現認證有效入口,單擊該入口可進一步查看認證詳情。
-
-
查看頒發者資訊:在彈出的認證資訊視窗中,尋找"頒發者"欄位,確認頒發者的一般名稱(CN)、組織名(O)等資訊中是否包含知名CA名稱。
在詳細資料頁簽的憑證階層地區,可看到完整的憑證鏈結(例如 GlobalSign Root CA → GlobalSign Organization Validation CA - SHA256 - G3 → \*.aliyun.com)。頂層節點即為頒發者一般名稱(CN),由此可確認是否包含知名CA。
-
驗證網域名稱是否解析正確
-
驗證DNS記錄是否指向正確的IP地址,特別是最近更換過主機或IP地址時。
-
在权威域名解析頁面的權威網域名稱頁簽下,單擊目標網域名稱進入解析设置頁面。
-
在解析设置頁面,單擊添加记录按鈕。查看记录值是否與您的IP地址匹配;如果不匹配,請單擊修改按鈕進行修改。
-
如果最近更改了網域名稱解析設定,解析結果可能存在延遲。您可以清除本地DNS緩衝後重試,或等待一段時間後自動生效。
以下是在不同作業系統中清除本地DNS緩衝的操作方法:
Windows
-
按下
Win + R鍵,輸入cmd,然後按Enter鍵開啟命令提示字元。 -
在命令提示字元中輸入以下命令後按
Enter鍵:ipconfig /flushdns -
出現"已成功重新整理 DNS 解析緩衝。"提示即表示清除成功。
macOS
-
開啟終端:
按下
Command + Space鍵開啟Spotlight搜尋,輸入"Terminal"並開啟終端。 -
在終端中輸入以下命令清除DNS緩衝後按
Enter鍵:# dscacheutil 是與系統快取服務互動的命令列工具 sudo dscacheutil -flushcache -
輸入以下命令發送HUP訊號重啟
mDNSResponder進程,確保緩衝被完全重新整理:# mDNSResponder 是負責 DNS 服務的後台進程 sudo killall -HUP mDNSResponder -
如果沒有出現任何報錯資訊,則表示命令執行成功。
說明操作過程中可能會提示輸入管理員密碼,輸入後直接按
Enter鍵即可。Linux
在Linux系統上,清除本地DNS緩衝的方法取決於系統使用的DNS快取服務。以下是常見DNS快取服務及其清除緩衝的方法:
-
systemd-resolved
如果您的Linux系統使用
systemd-resolved來管理DNS緩衝,可以通過以下命令清除:sudo systemd-resolve --flush-caches -
nscd(Name Service Cache Daemon)
如果您的系統使用
nscd來管理DNS緩衝,可以通過重啟nscd服務來清除:sudo service nscd restart或者:
sudo systemctl restart nscd -
dnsmasq
如果您的系統使用
dnsmasq來管理DNS緩衝,可以通過重啟dnsmasq服務來清除:sudo service dnsmasq restart或者:
sudo systemctl restart dnsmasq -
BIND(Berkeley Internet Name Domain)
如果您的系統使用
BIND來管理DNS緩衝,可以通過以下命令清除:sudo rndc flush -
NetworkManager
某些Linux發行版使用
NetworkManager來管理網路設定(包括DNS緩衝),可以通過重啟該服務來清除:sudo service network-manager restart或者:
sudo systemctl restart NetworkManager
說明根據您系統中使用的DNS快取服務選擇相應的命令。執行這些命令通常需要管理員權限,因此需要在命令前添加
sudo。清除DNS緩衝後,系統將從DNS伺服器擷取最新的網域名稱解析資訊。 -
清理瀏覽器緩衝
瀏覽器可能會緩衝舊的SSL認證資訊,導致您看到的是舊的認證狀態。請清理瀏覽器緩衝後重新訪問您的網站。
您也可以嘗試在無痕模式下訪問網站以繞過緩衝:
- Chrome瀏覽器:單擊右上方菜單,選擇開啟新的無痕式視窗(快速鍵 Ctrl+Shift+N)。
- Edge瀏覽器:單擊右上方菜單,選擇建立InPrivate視窗(快速鍵 Ctrl+Shift+N)。
驗證憑證鏈結是否完整
您需要確保整個憑證鏈結是完整的,包括中間認證(Intermediate Certificate)和根憑證(Root Certificate)。瀏覽器需要驗證從根憑證到伺服器憑證的完整信任鏈結,如果憑證鏈結不完整,瀏覽器將無法信任該認證。
-
根憑證是認證信任鏈結的起始,用於驗證由該CA簽發的所有下級認證的真實性。對於由受信任的CA簽發的SSL認證,其根憑證已預先安裝至主流Web瀏覽器(Google Chrome、Mozilla Firefox、Microsoft Edge等)或作業系統(Windows、macOS、Android和iOS移動平台等)。但是對於未預埋根憑證的用戶端(App、Java用戶端、舊版本瀏覽器、IoT裝置等),您需要手動下載與伺服器憑證類型一致的根憑證,並安裝到對應的用戶端,確保用戶端與伺服器建立HTTPS安全連線。選擇與您的SSL認證類型一致的根憑證進行手動下載,請參見下載和安裝根憑證。
-
中間認證位於根憑證和使用者實體認證(如SSL認證)之間,由上級CA頒發給下級CA。在阿里雲的數位憑證管理服務中,下載的PEM檔案已包含伺服器憑證和中間認證。私密金鑰(KEY檔案)與伺服器憑證配對,以確保HTTPS通訊的安全。使用中間認證有助於降低根憑證直接簽發SSL認證的風險——若根憑證需撤銷,由根憑證直接簽名的所有認證將失去信任,而通過中間認證簽發的認證可通過撤銷中間認證的方式來管理,無需影響根憑證。下載中間認證,請參見下載SSL認證。
憑證鏈結合并
憑證鏈結缺失是導致SSL認證驗證失效的重要原因之一。通常情況下,PC端瀏覽器可以通過Authority Info Access(AIA)的URL連結自動擷取中間認證,但部分Android系統瀏覽器不支援此機制,導致認證不可信或無法訪問。
此時您需要將憑證鏈結檔案按以下SSL憑證鏈結結構合并為一個檔案並重新部署到伺服器,瀏覽器在與伺服器串連時將自動下載使用者認證和中間認證,從而顯示為可信認證:
-----BEGIN CERTIFICATE-----
網站認證
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
CA 中間認證機構
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
CA 根憑證機構
-----END CERTIFICATE-----
SSL憑證鏈結結構一般為:網站認證 → CA中間認證機構 → CA根憑證機構,中間認證可能存在多層關係。
如何查看SSL憑證鏈結
以下以Chrome瀏覽器為例:
-
在瀏覽器地址欄單擊
表徵圖,在彈出的資訊卡片中單擊串連是安全的。 -
在彈出的串連是安全的資訊視窗中,單擊認證有效。
-
單擊詳細資料,查看憑證階層,即可查看SSL憑證鏈結。
在詳細資料頁簽的憑證階層地區,可看到完整的憑證鏈結(例如 GlobalSign Root CA → GlobalSign Organization Validation CA - SHA256 - G3 → \*.aliyun.com)。
如何補全憑證鏈結
-
如果認證是通過阿里雲申請的,請直接重新下載認證檔案,其中已包含完整的憑證鏈結。
-
在Windows上手動開啟認證檔案,找到中間認證並將其匯出為Base64格式,然後將匯出的內容追加到原認證檔案中。
確認私密金鑰的正確性
請確保上傳到Web伺服器的認證和私密金鑰是匹配的,並且格式正確。
私密金鑰在產生CSR(Certificate Signing Request)時建立,必須與認證配套使用。以下以Linux系統為例,指導您如何驗證私密金鑰是否與認證匹配:
-
登入雲端服務器,使用以下命令進入認證的安裝目錄:
# 其中 / 為根目錄,ssl 路徑僅為樣本,具體位置請根據實際認證安裝目錄確定 cd /ssl -
查看認證的公開金鑰資訊並擷取其MD5值:
# 請將 your_certificate.pem 替換為雲端服務器認證目錄下的 PEM 檔案 sudo openssl x509 -in your_certificate.pem -noout -pubkey | openssl md5 -
查看私密金鑰檔案中的公開金鑰資訊並擷取其MD5值:
# 請將 your_private_key.key 替換為雲端服務器認證目錄下的私密金鑰檔案 sudo openssl rsa -in your_private_key.key -pubout | openssl md5 -
比較兩個命令輸出的MD5值。如果相同,則說明私密金鑰與認證匹配:
[root@~]# cd /ssl [root@ ssl]# sudo openssl x509 -in your_certificate.pem -noout -pubkey | openssl md5 (stdin)= a54fa7a0a04ee0a049d4f69f6ac3dfea [root@ ssl]# sudo openssl rsa -in your_private_key.key -pubout | openssl md5 writing RSA key (stdin)= a54fa7a0a04ee0a049d4f69f6ac3dfea
如果私密金鑰丟失或損壞,您需要重建私密金鑰並申請新的認證。
檢查瀏覽器安全色性
確保認證格式和加密套件與主流瀏覽器安全色,可參考以下建議:
-
使用受信任的CA:選擇受信任的憑證授權單位(CA)來頒發SSL/TLS認證。主流瀏覽器會自動信任這些CA頒發的認證。
-
使用正確的認證格式:
-
確保您的認證採用X.509格式(SSL/TLS認證的標準格式)。您可以使用以下命令來檢查認證格式:
# 請根據實際安裝路徑替換 /ssl/your_certificate.pem sudo openssl x509 -in /ssl/your_certificate.pem -text -noout如果認證為X.509格式,該命令會輸出認證的詳細資料,包括版本、序號、簽名演算法、頒發者、有效期間、公開金鑰資訊等。樣本輸出:
Certificate: Data: Version: 3 (0x2) Serial Number: 01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef Signature Algorithm: sha256WithRSAEncryption Issuer: C = US, O = DigiCert Inc Validity Not Before: Jan 17 00:00:00 2025 GMT Not After : Jan 17 23:59:59 2026 GMT Subject: CN = example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) ......如果命令成功執行並顯示上述詳細資料,則說明認證為X.509格式。
-
使用PEM格式(通常為
.crt或.pem檔案)儲存認證和中間憑證鏈結。
-
-
使用現代加密套件:
-
設定管理員使用TLS 1.2或TLS 1.3等現代加密套件,以獲得更好的安全性和相容性。
-
停用不安全的協議和密碼編譯演算法,如SSL 2.0/3.0、TLS 1.0/1.1、RC4和3DES。
-
建議在多個主流瀏覽器和裝置上測試HTTPS串連情況。
確保認證檔案目錄具有正確的讀取許可權
確儲存放認證檔案的目錄具有正確的讀取許可權,以便Web伺服器能夠正常訪問這些檔案。
以下以Linux為例,指導您檢查和調整認證檔案目錄的許可權:
-
使用
ls -ld命令查看目錄許可權:# 請根據實際安裝路徑替換樣本路徑 /ssl sudo ls -ld /ssl輸出樣本:
drwxr-xr-x 2 root root 4096 Jan 17 13:52 /ssl說明許可權欄位(如
drwxr-xr-x)的含義:-
第一個字元
d表示這是一個目錄。 -
接下來的三個字元
rwx表示所有者的許可權:讀(r)、寫(w)、執行(x)。 -
中間三個字元
r-x表示同組使用者的許可權:讀(r)和執行(x)。 -
最後三個字元
r-x表示其他使用者的許可權:讀(r)和執行(x)。
-
-
確認許可權是否適當:
-
讀取許可權:確保相關使用者或服務對目錄具有讀(r)許可權。
-
執行許可權:對於目錄,執行(x)許可權允許使用者進入目錄(即使用
cd命令切換至該目錄)。
-
-
(可選)修改許可權:
如果需要更改許可權,可以使用
chmod命令:# 請根據實際安裝路徑替換樣本路徑 /ssl sudo chmod 750 /ssl說明750許可權表示:-
所有者具有讀、寫和執行許可權。
-
同組使用者具有讀和執行許可權。
-
其他使用者沒有許可權。
-
通過這些步驟,您可以確認並調整Linux伺服器上認證檔案目錄的讀取許可權,以確保安全性和可訪問性。
不同網站的代碼實現邏輯可能存在差異,建議您查閱Web伺服器和應用程式的記錄檔,尋找與SSL相關的錯誤資訊以定位問題。如仍有疑問,請聯絡商務經理進行諮詢。
常見問題
替換舊 SSL 憑證的操作是否會導致業務中斷?
替換舊認證的操作本身不會直接導致業務中斷。但在部署新認證後,通常需要重啟 Web 服務或應用才能使新認證生效,重啟過程可能會導致短暫的業務中斷。建議您在業務低峰期進行操作,並確保新認證正確部署後再重啟服務。