如果您的輕量應用服務器已綁定了域名,可以為域名配置HTTPS加密訪問,以較低的成本將數據傳輸協議從HTTP轉換成HTTPS,實現網站的身份驗證和數據加密傳輸,防止數據在傳輸過程中被篡改,信息泄露。本文以使用WordPress 5.6.2的輕量應用服務器為例,介紹在服務器中安裝SSL證書,并開啟HTTPS加密訪問。
前提條件
已創建輕量應用服務器。具體操作,請參見快速搭建WordPress個人博客。
已購買域名。通過阿里云購買域名的操作,請參見注冊通用域名。
如果您的輕量應用服務器部署在中國內地,需要確保域名已備案。更多信息,請參見什么是ICP備案。
域名已經綁定到輕量應用服務器并完成域名解析。具體操作,請參見綁定并解析域名。
背景信息
通過數字證書管理服務(Certificate Management Service)完成證書購買、申請,并將證書部署到您的Web服務器后,Web服務將會通過HTTPS加密協議來傳輸數據。HTTPS加密傳輸協議可激活客戶端瀏覽器到網站服務器之間的SSL加密通道(SSL協議),從而實現高強度單向加密傳輸,防止傳輸數據被泄露或篡改。HTTPS加密傳輸為手機APP、小程序應用、代碼程序、控件等上線應用市場或應用生態必備特征。HTTPS加密傳輸可為網站帶來以下優勢:
安全合規:滿足對應App市場或應用生態的要求。
加密傳輸網絡數據:加密網站用戶與網站間的數據通信,實現傳輸數據的防劫持、防篡改、防監聽,保障數據傳輸安全。
提升網站安全性:規避釣魚事件發生。網站用戶在訪問網站時瀏覽器提示安全可信,可以提升網站的可信度、訪問流量和搜索排名。
步驟一:申請SSL證書
阿里云支持申請免費證書、付費證書或者在其他服務商申請的證書。免費證書建議用于測試、個人試用等場景,org、jp等特殊域名存在無法申請的情況,正式環境建議使用付費正式證書,本步驟以申請免費證書為例介紹。如果您需要申請付費正式證書,請參見購買SSL證書。
數字證書管理服務已于2024年06月下旬將SSL免費證書更名為個人測試證書(免費版),將升級證書(有效期12個月)變更為個人測試證書(pro)。免費證書更名通知,請參見【通知】免費證書更名。
每個阿里云個人或企業用戶(以實名認證為準)每個自然年可以一次性申請20張免費證書(每個自然年僅限領取1次)。自然年是每年的01月01日~12月31日,免費領取的證書資源包在每個自然年末將未申請的額度清零(每年12月31日24:00:00),您需要等到第二年的1月1日00:00:00后申請領取當年的免費證書資源包。更多關于免費證書適用場景、領取規則和使用限制說明,請參見個人測試證書說明。
購買免費SSL證書
登錄數字證書管理服務控制臺。
在左側導航欄,選擇。
在個人測試證書(原免費證書)頁簽,單擊立即購買。
在立即購買面板,參考下表購買個人測試證書,仔細閱讀并勾選服務協議,單擊立即購買并完成支付。
配置項
描述
免費版個人測試證書領取示例
產品
SSL證書:即正式證書購買入口。詳細參數說明,請參見購買SSL證書。
個人測試證書:一般用于測試、個人試用場景。
關于正式證書和個人測試證書區別,請參見個人測試證書說明。
個人測試證書
證書類型
個人測試證書(免費版):即免費證書,證書簽發后有效期3個月。
個人測試證書(pro):需支付基礎的服務費(68元/張/年)。證書簽發后有效期為12個月。
個人測試證書(免費版)
服務
僅個人測試證書(免費版)顯示。
說明個人測試證書不保證OCSP(Online Certificate Status Protocol,在線證書狀態協議)穩定性。
保持默認
購買數量
個人測試證書(免費版):默認為20。
每個阿里云個人或企業用戶(以實名認證為準)每個自然年可以一次性申請20張免費版個人測試證書(每個自然年僅限領取1次)。更多關于免費版本個人測試證書適用場景、領取規則和使用限制說明,請參見個人測試證書說明。
說明自然年是每年的01月01日~12月31日,免費領取的證書資源包在每個自然年末將未申請的額度清零(每年12月31日24:00:00),您需要等到第二年的1月1日00:00:00后申請領取當年的免費版個人測試證書資源包。
如果您在一自然年內已經使用完20張免費版個人測試證書,您可以購買個人測試證書(pro)或HTTPS加速網關,具體操作,請參見個人測試證書升級指南,或直接購買正式證書,具體操作,請參見購買SSL證書。
個人測試證書(pro):一次性購買證書的最少為1張,最大為100張。
保持默認
其他服務
申請協助和部署服務可以為您解決在使用SSL證書時遇到的各種問題。在申請證書時,協助您梳理申請材料,并主動與CA簽發機構進行協調,以確保證書在最短時間內簽發。如果您不具備安裝或配置證書的能力,專家可為您提供視頻遠程指導,幫助您快速定位問題,解決您的技術難題。更多信息,請參見購買證書申請協助和部署服務。
不需要
申請協助服務:工作日服務時間內(9:00~18:00)幫助您快速簽發SSL證書。
部署服務:工作日服務時間內(9:00~18:00)幫助您部署RSA或ECC算法證書。
申請協助+部署服務:證書申請和部署全流程協助,支持非工作日服務時間(9:00~18:00),幫您快速完成證書簽發和部署。
不需要
提交免費證書申請
登錄數字證書管理服務控制臺。
在左側導航欄,選擇。
在SSL證書頁面,單擊個人測試證書(原免費證書)頁簽。
在個人測試證書(原免費證書)頁簽,單擊創建證書。
在證書申請面板,配置證書參數,選中快捷簽發,單擊提交審核。
在證書申請面板,按照下表配置證書參數,選中快捷簽發,并單擊提交審核。
配置項
說明
證書類型
選擇個人測試證書(免費版)。
證書剩余數量/總數
表示剩余可申請的證書個數/總共可申請的證書個數。只有當剩余可申請的證書個數不為0時,您才可以創建證書。
域名名稱
填寫該證書用于保護的網站域名。
數量
證書數量,默認為1,不支持增加。
快捷簽發
說明快捷簽發是指在當前步驟填寫證書申請資料并提交審核。
域名驗證方式
如果您當前的阿里云賬號與域名的DNS云解析服務所在賬號一致,申請證書時,阿里云數字證書管理服務將會自動識別,并默認選擇自動DNS驗證方式,且不支持修改,提交審核后,系統會自動進行DNS驗證。
如果您當前的阿里云賬號與域名的DNS云解析服務所在賬號不一致,您可以選擇以下任意一種方式進行域名所有權驗證。
手動DNS驗證:您需要手動修改域名的DNS解析記錄,并在證書綁定域名的域名控制臺,添加一條解析記錄用于域名所有權驗證。
域名授權自動化驗證:您需要手動在對應的DNS域名解析服務商,添加一條CNAME類型的解析記錄用于域名所有權驗證。添加成功后,后續申請對應域名的SSL證書時可以直接選擇該方式,且無需再添加域名解析記錄。具體操作,請參見域名所有權驗證。
文件驗證:您需要手動從數字證書管理服務控制臺下載一個專用的證書驗證文件,然后將該文件上傳到站點服務器的指定驗證目錄。
聯系人
從下拉列表中選擇本次證書申請的聯系人(包含郵箱、手機號碼等聯系信息)。
重要收到證書申請請求后,CA中心會向聯系人郵箱發送證書申請驗證郵件或者通過聯系人手機號碼溝通審核相關事宜。因此,請務必確保聯系人信息準確且有效。
如果您未創建過聯系人,可以單擊新建聯系人,新建一個聯系人。數字證書管理服務會保存新建的聯系人信息,方便您下次使用。關于新建聯系人的具體配置,請參見管理聯系人。
所在地
選擇申請人所在城市或地區。
密鑰算法
證書使用的密鑰算法。
默認選擇為RSA,且不支持修改。RSA算法是目前在全球應用廣泛的非對稱加密算法,兼容性好。
CSR生成方式
CSR(Certificate Signing Request)文件是您的證書請求文件。該文件包含您的SSL證書信息,例如,證書綁定的域名、證書持有主體的名稱及地理位置信息等。
您向CA中心提交證書申請時,必須提供CSR。CA中心審核通過您的證書申請后,將使用其根CA私鑰為您提供的CSR簽名,生成SSL證書公鑰(即簽發給您的SSL證書)。SSL證書的私鑰即您在生成CSR時同時生成的私鑰。
您可以選擇以下CSR生成方式:
系統生成:表示由數字證書管理服務自動使用您在密鑰算法指定的加密算法生成CSR文件(您可以在證書簽發后下載證書和私鑰)。推薦您使用該方式。
手動填寫:表示您是使用OpenSSL或Keytool等工具手動生成的CSR和私鑰文件,并將CSR內容復制粘貼到CSR文件內容(私鑰文件由您自行保管)。關于如何制作CSR和私鑰文件,請參見如何制作CSR文件。
重要CSR生成方式選擇手動填寫后,您將無法在數字證書管理控制臺將該證書部署到阿里云產品中。
申請國密算法證書且選擇手動填寫CSR時,由于私鑰不在阿里云,獲得的加密證書需要私鑰配合完成解密,請您聯系私鑰生成方協助完成解密工作。
您提供的CSR內容正確與否直接關系到證書申請流程是否能順利完成,建議您使用數字證書管理服務自動生成的CSR(即選擇系統生成方式),避免因提供的CSR內容不正確導致證書審核失敗。
請確保您手動填寫的CSR使用的加密算法與密鑰算法中選擇的算法相同,否則您將無法順利提交證書審核。 如果您不清楚CSR使用的加密算法,您可以通過查看CSR工具查看,具體操作,請參見查看CSR詳情。
在制作CSR文件時請務必保存好您的私鑰文件。私鑰和SSL證書一一對應,一旦私鑰丟失,您的SSL證書也將不可使用。阿里云不負責保管您的私鑰,如果您的私鑰丟失,您必須重新購買SSL證書。
選擇已有的CSR:表示從您在數字證書管理服務控制臺創建的CSR或上傳的CSR中,選擇與證書綁定域名相匹配的CSR。
CSR文件內容
只有在CSR生成方式為手動填寫或選擇已有的CSR時,需要配置該參數。在此處填寫您的CSR文件內容。
按照驗證信息中的提示,完成域名所有權的驗證。
域名所有權驗證成功后,證書通常會在1~2個工作日完成簽發,最快10分鐘內簽發。證書簽發后,證書狀態將變更為已簽發。如果SSL證書長時間未簽發,請您檢查DNS驗證配置是否正確。域名所有權驗證更多信息和常見報錯,請參見域名所有權驗證。
說明如果您未選中快捷簽發,創建證書申請后,您將獲得一個證書(對應要申請的證書)。您需要在該證書操作列,單擊證書申請,填寫證書申請信息并提交審核后,再按照該步驟進行驗證。
步驟二:配置SSL證書
證書簽發后,證書狀態將變更為已簽發,您需要部署SSL證書至服務器并配置證書。關于證書部署和安裝的更多信息,請參見SSL證書安裝指南。
上傳部署SSL證書。
在左側導航欄,選擇。
在云服務器部署頁面,單擊創建任務,按照以下步驟部署SSL證書。
在基礎配置引導頁,自定義任務名稱,單擊下一步。
在選擇證書引導頁,選擇證書類型以及關聯云服務器的SSL證書,單擊下一步。
在選擇資源引導頁,選擇對應的云服務器和資源,單擊下一步。
系統會自動識別并拉取當前阿里云賬號下所有符合條件的云服務器實例資源(即云服務器部署了Web應用)。如果仍未顯示對應資源,請檢查云服務器是否部署了Web應用,例如Nginx,Apache等。
若某個實例之前部署過證書,系統會顯示已部署證書的名稱。
在部署配置引導頁,參考下表部署證書至云服務器,單擊確定。
重要如果服務器中不存在對應的證書配置目錄,系統將會自動進行創建。控制臺配置的路徑應當與云服務器Web應用中配置的證書相關文件的路徑保持一致。
配置項
描述
配置示例
證書路徑
設置證書文件存放在云服務器中的絕對路徑。
/usr/local/nginx/conf/ssl/cert.pem
私鑰路徑
設置證書私鑰文件存放在云服務器中的絕對路徑。
/usr/local/nginx/conf/ssl/cert.key
證書鏈路徑
設置證書鏈文件存放在云服務器中的絕對路徑。
無需配置。
重啟命令
在部署證書后,需要重啟云服務器中的Web應用或重新加載Web應用配置文件,以使證書生效。因此,您可以設置Web應用的重啟或重新加載配置文件命令。
重要執行相關命令時,可能會出現服務啟動失敗的情況。如果服務啟動失敗,請前往對應的云服務器進行操作。
無需配置。
在提示對話框,單擊確定。
配置SSL證書。
遠程連接輕量應用服務器。具體操作,請參見遠程連接Linux服務器。
執行以下命令,修改WordPress配置文件wordpress.conf。
說明本示例WordPress環境中默認安裝的是Nginx,不同環境的配置文件路徑和名稱可能不一樣,請您以實際環境為準。
sudo vim /usr/local/nginx/conf/vhost/wordpress.conf
按
i
鍵,進入編輯模式。在配置文件
server{}
代碼段中配置證書路徑。修改后的配置文件示例如下所示:
server { listen 80; listen [::]:80; listen 443 ssl http2; listen [::]:443 ssl http2; #配置SSL證書路徑。證書路徑需與部署證書時設置一致。 ssl_certificate /usr/local/nginx/conf/ssl/cert.pem; ssl_certificate_key /usr/local/nginx/conf/ssl/cert.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_buffer_size 1400; add_header Strict-Transport-Security max-age=15768000; ssl_stapling on; ssl_stapling_verify on; server_name _; access_log /data/wwwlogs/wordpress_nginx.log combined; index index.html index.htm index.php; root /data/wwwroot/wordpress; #if ($ssl_protocol = "") { return 301 https://$host$request_uri; } #if ($host != www.example.com) { return 301 $scheme://www.example.com$request_uri; } include /usr/local/nginx/conf/rewrite/wordpress.conf; #error_page 404 /404.html; #error_page 502 /502.html; location ~ [^/]\.php(/|$) { #fastcgi_pass remote_php_ip:9000; fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 7d; access_log off; } location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) { deny all; } }
修改完成后,按
Esc
鍵,輸入:wq!
并按Enter
鍵,保存修改后的配置文件并退出編輯模式。執行以下命令,重啟Nginx服務。
sudo systemctl reload nginx
運行以下命令,重啟數據庫。
sudo service mysqld restart
步驟三:驗證SSL證書是否安裝成功
在WordPress后臺管理頁面配置HTTPS域名。
登錄WordPress后臺管理頁面。
后臺管理頁面地址、用戶名、密碼的獲取方式具體操作,請參見步驟二:配置應用。
在左側導航欄中,選擇 。
在WordPress地址(URL)和站點地址(URL)后,輸入您已綁定并解析的域名,本文以
https://example.com
為例。單擊保存更改。
說明修改WordPress地址(URL)和站點地址(URL)后,則管理員登錄地址變為
https://example.com/wp-login.php
,example.com
需要替換為您的實際域名。
使用瀏覽器訪問
https://輕量應用服務器對應的域名
。
相關文檔
不同類型的服務器支持配置的SSL證書格式不同,您可以根據服務器的類型選擇安裝對應的SSL證書。具體操作,請參見SSL證書安裝指南。