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