Tencent SSL 数字证书安装部署
目錄
- 前言
- 一、SSL 證書購買
- 二、配置監聽器
- 三、Nginx SSL 配置
- FAQ
前言
之前寫了一篇關于 SSL 證書的文章《Nginx 自簽證書實現80轉443》,不過這是自簽證書的形式進行部署的,盡管能正常訪問,但依然顯示是不安全的,因為自簽證書是得不到認可的。因開發人員需要 https 方式請求(對接各種數據),我們公司使用的是騰訊云服務器,為滿足開發需求,于是就在騰訊云上購買了一個免費的 SSL 證書,并進行相關的部署配置,接下來簡單說一下部署配置過程和要注意的相關事項。
一、SSL 證書購買
1、域名解析
首先你得有域名和云服務器,并做了對應的域名解析(主域名和子域名),如果你有用到負載均衡器(CLB),該負載均衡會有對應的 vip,也是需要事先把你得主域名和子域名解析到負載均衡 vip,這里我以負載均衡的形式進行演示。
2、購買 SSL證書
購買方式請參考騰訊云文檔《域名型(DV)免費 SSL 證書申請流程》,該文檔記錄得很詳細,免費證書提供二級域名證書申請,而且只能申請單個域名證書,而不能申請泛域名證書(除非購買付費證書)。其主要步驟如下:
- 選擇證書類型:TrustAsia TLS RSA CA;
- 填寫證書內容
- 提交資料:選擇加密算法、綁定的域名、申請郵箱、備注、私鑰等。注意:如需部署騰訊云負載均衡、CDN 等云服務,請勿填寫私鑰密碼。
- 選擇驗證方式:自動添加 DNS、DNS 驗證、文件驗證。注意:自2021年12月01日起,對于使用文件驗證方式的域名,只能為當前被驗證的域名簽發證書,不支持簽發通配符 SSL 證書和其下級子域名 SSL 證書。我這里使用的是【自動添加 DNS】,該方式的限制條件:須使用騰訊云 DNS 解析 DNSPod 的域名。
- 驗證域名:如果選擇了【自動添加 DNS】,它會自動完成域名所有權驗證。
- 簽發證書:驗證通過后會簽發對應的域名證書。
3、下載證書到本地并上傳至服務器
二、配置監聽器
登錄騰訊云負載均衡控制臺配置監聽器,配置步驟參考騰訊云文檔《配置 HTTPS 監聽器》,CLB 與后端服務器的協議選用 HTTP/80。想要 http 和 https 都能訪問,也需要同時配置這兩個監聽器。由于篇幅較長,不再做詳細概述,如要了解均衡方式、會話保持、重定向等,可參考騰訊云文檔《負載均衡》。
三、Nginx SSL 配置
1、證書內容
各類服務器系統證書 SSL 安裝部署,我使用的是 Linux 系統的 Nginx 方式進行安裝部署,下圖為證書所包含的內容,可以看到該證書可應用于 Apache、IIS、Nginx、Tomcat,根據實際情況選擇對應的服務即可。
2、Nginx 配置
這里有幾種方式可選擇:
-
直接以 https 形式訪問:以騰訊云為例子
server {# SSL 訪問端口號為 443listen 443 ssl; # 填寫綁定證書的域名server_name cloud.tencent.com; # 證書文件名稱(若證書沒和nginx配置文件在同級目錄下,則須使用絕對路徑)ssl_certificate 1_cloud.tencent.com_bundle.crt; # 私鑰文件名稱(若私鑰沒和nginx配置文件在同級目錄下,則須使用絕對路徑)ssl_certificate_key 2_cloud.tencent.com.key; ssl_session_timeout 5m;# 請按照以下協議配置ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 請按照以下套件配置,配置加密套件,寫法遵循 openssl 標準。ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on;location / {# 網站主頁路徑。此路徑僅供參考,具體請您按照實際目錄操作。root html; index index.html index.htm;} } nginx -t # 看看語法是否有錯(有錯的話需要先解決錯誤,否則修改的配置不生效) nginx -s reload # 重載Nginx -
http 轉 https:以騰訊云為例子
server { listen 443 ssl; # 填寫綁定證書的域名 server_name cloud.tencent.com; # 證書文件名稱(若證書沒和nginx配置文件在同級目錄下,則須使用絕對路徑) ssl_certificate 1_cloud.tencent.com_bundle.crt; # 私鑰文件名稱(若私鑰沒和nginx配置文件在同級目錄下,則須使用絕對路徑) ssl_certificate_key 2_cloud.tencent.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / {# 網站主頁路徑。此路徑僅供參考,具體請您按照實際目錄操作。 root html;index index.html index.htm; } } server { listen 80; # 填寫綁定證書的域名 server_name cloud.tencent.com; # 把http的域名請求轉成https(永久重定向) return 301 https://$host$request_uri; } nginx -t # 看看語法是否有錯(有錯的話需要先解決錯誤,否則修改的配置不生效) nginx -s reload # 重載Nginx -
http 和 https 均可訪問:以騰訊云為例子,也可參考我前面的博文《Nginx 自簽證書實現80轉443》。
server { listen 80; listen 443 ssl; # 填寫綁定證書的域名 server_name cloud.tencent.com; # 證書文件名稱(若證書沒和nginx配置文件在同級目錄下,則須使用絕對路徑) ssl_certificate 1_cloud.tencent.com_bundle.crt; # 私鑰文件名稱(若私鑰沒和nginx配置文件在同級目錄下,則須使用絕對路徑) ssl_certificate_key 2_cloud.tencent.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / {# 網站主頁路徑。此路徑僅供參考,具體請您按照實際目錄操作。 root html;index index.html index.htm; } } nginx -t # 看看語法是否有錯(有錯的話需要先解決錯誤,否則修改的配置不生效) nginx -s reload # 重載Nginx
FAQ
-
域名解析問題
在申請 SSL 證書前,需對證書要綁定的域名進行域名解析,目的是為了域名驗證時進行自動添加 DNS,否則可能會導致域名所有權驗證失敗,從而無法簽發證書。
-
監聽器配置問題
SSL 證書簽發后,負載均衡器需配置 HTTPS 監聽器,并綁定相應的后端服務器(看其健康狀態),負載均衡器與后端服務器以 HTTP 形式通信即可。
-
端口過濾問題
Nginx 配置好后,還需注意端口是否開放問題,這個端口開放是負載均衡器的,編輯負載均衡器的安全組,放開 443 端口,這里也需要注意,有的公司內部是對端口做限制的,也需要公司內部進行放開,要不然你們公司內部是無法訪問的,而公司外部的其他人員都是可以正常訪問的。這里提供一個端口、解析檢測的方法,大家可以參考:以 www.baidu.com 為例
(1)如果你 SSL 證書綁定的域名無法訪問頁面時,可用 dig 命令看看解析是否正確。
(2)如果上述解析沒問題,但依然不能訪問,再使用 nmap 進行端口掃描,看看端口是否被過濾掉了。前提你的服務已監聽了該端口(netstat -lntp 查看)
<點擊跳轉至開頭>
總結
以上是生活随笔為你收集整理的Tencent SSL 数字证书安装部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32CubeMX学习——旋转编码器
- 下一篇: pdf转换成excel文件_将PDF文件