1.去騰訊云注冊(cè)帳號(hào)悠瞬,申請(qǐng)免費(fèi)SSL證書(shū)點(diǎn)擊直達(dá)
申請(qǐng)證書(shū):
輸入備案域名的信息
進(jìn)行文件驗(yàn)證
如果選擇DNS驗(yàn)證涯捻,就去該域名的管理頁(yè)面添加DNS解析浅妆。
如果選擇文件驗(yàn)證,就去該域名指向的web服務(wù)器的靜態(tài)文件目錄內(nèi)新建文件汰瘫。
具體內(nèi)容狂打,請(qǐng)參考騰訊云的文檔。
申請(qǐng)成功
下載證書(shū)混弥,解壓
然后,請(qǐng)按照騰訊云的文檔對(duì)Nginx進(jìn)行配置对省。
不過(guò)蝗拿,這里可能會(huì)遇到好幾個(gè)坑!]锵选哀托!
坑1
修改好Nginx配置后使用nginx -t測(cè)試配置,如果發(fā)現(xiàn)ssl不能識(shí)別劳秋,極有可能是Nginx在編譯的時(shí)候沒(méi)有配置SSL的支持選項(xiàng)仓手。
錯(cuò)誤包含此內(nèi)容:[emerg] unknown directive "ssl",說(shuō)明需要對(duì)Nginx進(jìn)行重新編譯并安裝玻淑、重啟嗽冒。
到解壓的nginx目錄下
./configure --with-http_ssl_module
切記不能make install 會(huì)覆蓋!
make
將原來(lái)的nginx備份 備份之前先kill當(dāng)前正在啟動(dòng)的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
make之后會(huì)在當(dāng)前目錄生成 objs 目錄
cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
然后重新啟動(dòng)nginx
/usr/local/nginx/sbin/nginx
坑2
云服務(wù)器并沒(méi)有開(kāi)啟 443端口补履!
需要去云服務(wù)器配置頁(yè)面修改安全組(阿里云把這個(gè)叫做安全組添坊,請(qǐng)根據(jù)你的實(shí)際情況進(jìn)行配置)。
開(kāi)啟443端口后箫锤,重啟一下Nginx贬蛙,然后查看Nginx是否成功監(jiān)聽(tīng)了443端口雨女。
lsof -i :443
坑3
如果你要讓Nginx強(qiáng)制將HTTP轉(zhuǎn)為HTTPS,也就是將80端口的請(qǐng)求轉(zhuǎn)發(fā)至443端口阳准。
你可能需要在監(jiān)聽(tīng)80端口的server中加入以下配置:
return 307 [https://$server_name$request_uri](https://$server_name$request_uri);
如果你的前端是App而不是Web氛堕,建議你測(cè)試一下App內(nèi)的非GET請(qǐng)求是否可以正常識(shí)別(因?yàn)槲疫@里一直是異常的,最后我選擇讓HTTP和HTTPS并存)野蝇。
參考文章:
騰訊云 - 域名型證書(shū)申請(qǐng)流程
Nginx如何安裝https-ssl證書(shū)
nginx:[emerg]unknown directive "ssl"