前言
HTTP 和 HTTPS
我們?nèi)粘I钪校R?jiàn)的網(wǎng)址大致分為2種:
一種是基于 http 協(xié)議,如:http://www.baidu.com
一種是基于 https 協(xié)議,如:https://www.baidu.com
現(xiàn)在很多網(wǎng)站出于安全的考慮,會(huì)把網(wǎng)站的域名訪問(wèn)從 http 已經(jīng)升級(jí)為 https,如果你不知道 http 和 https 的概念,不妨先看看下面這篇文章:HTTP和HTTPS有什么不同
SSL 證書
那么我們?nèi)绾螌?http 升級(jí)為 https 呢?
我們要升級(jí) http 為 https,首先需要一個(gè) SSL 證書。 SSL 你可以想象為本科畢業(yè)證,有個(gè)這個(gè)本科畢業(yè)證,就能證明你是本科生,就都能去申請(qǐng)本科生門檻的招聘。當(dāng)然,證書可以由不同院校頒發(fā),比如清華本科畢業(yè)證和普通三本院校的本科畢業(yè)證,這兩者的含金量肯定是有不同的。SSL證書也一樣,也有不同發(fā)簽發(fā)機(jī)構(gòu)。
配置方式
當(dāng)有了域名和SSL證書后,我們就可以將域名網(wǎng)址升級(jí)為 https 了,我們常用的做法是在 Nginx 中配置域名的 SSL 證書。
具體過(guò)程
開(kāi)始訪問(wèn)
(1)下面我以自己的網(wǎng)站,配置我的個(gè)人網(wǎng)站 SSL 證書,將我的網(wǎng)站升級(jí)為SSL。
我訪問(wèn)自己網(wǎng)站下的一張圖片( http://www.zyqok.cn/fj.jpg ),這是一個(gè) http 訪問(wèn)。
![](/d/20211016/267ad35dc757a01f02166199e56fa3c7.gif)
(2)然后我們改為 https 訪問(wèn),發(fā)現(xiàn)是訪問(wèn)不了的。
![](/d/20211016/c3640ea73681c3b112c336652df85bfc.gif)
下面我們正式開(kāi)始,將網(wǎng)站改為 https 的請(qǐng)求訪問(wèn)。
服務(wù)器安裝Nginx
首先,我們需要在服務(wù)器上安裝 Nginx 環(huán)境,如果你服務(wù)器已經(jīng)有Nginx了,那么這一步可以跳過(guò),如果未安裝Nginx,不妨參照
獲取 SSL 證書
由于我服務(wù)器是阿里云買的,所以阿里會(huì)送幾個(gè)免費(fèi)的SSL證書,下面以阿里云的獲取 SSL 證書過(guò)程進(jìn)行說(shuō)明。
如果你不是阿里云客戶,那么這一步可以跳過(guò),然后自行百度 “SSL證書” 到相關(guān)廠商購(gòu)買,或者百度 “免費(fèi)SSL證書” 。
(1)登錄阿里云,然后找到 【SSL證書】一欄,點(diǎn)擊( 因?yàn)槲乙呀?jīng)開(kāi)通過(guò)了該功能,所以你的位置可能和我的位置不一樣,自己去面板找 )。
![](/d/20211016/f6c250d5bb46c6b4d5e158d15490caed.gif)
(2)來(lái)到這個(gè)面板后,點(diǎn)擊【購(gòu)買證書】。
![](/d/20211016/df21957e0d0a2bb3a10fb0ce0a6ffe2e.gif)
(3)選擇免費(fèi)型,然后購(gòu)買
![](/d/20211016/8637c23038c24ffe66247a83e930c476.gif)
(4)當(dāng)你完成購(gòu)買后,就會(huì)在頁(yè)面出現(xiàn)一條對(duì)應(yīng)記錄,然后點(diǎn)擊【證書申請(qǐng)】。
![](/d/20211016/36b51457306bd2d0f17dd4e9f2cacc0f.gif)
(5)然后寫好你需要升級(jí)的域名,比如我要把我的個(gè)人網(wǎng)站 http://www.zyqok.cn 升級(jí)為 https://www.zyqok.cn
那么此時(shí)的域名就填 zyqok.cn,然后填寫好其他信息,點(diǎn)擊下一步,然后這個(gè)證書就會(huì)向上面提交,進(jìn)入審核狀態(tài)。
![](/d/20211016/d51cebf459a2b729a7f0cba765d3d9b7.gif)
(6)當(dāng)你的申請(qǐng)通過(guò)之后,你就可以下載你的SSL證書了,我們點(diǎn)擊右下角【下載】
![](/d/20211016/0b362cee16347d082ef494531619e70d.gif)
(7)繼續(xù)選擇 Nginx 后面的【下載】
![](/d/20211016/67b29bf21fc7eb815fb0ec71e27063bc.gif)
(8)下載完成后,我們就可以得到一個(gè)SSL證書的壓縮包
![](/d/20211016/f53e24e6d1f62596013d7e25953eb4bc.gif)
上傳SSL證書到服務(wù)器
(1)我們先將證書壓縮包解壓,然后可以得到如下兩個(gè)文件。
![](/d/20211016/214add619bc6dd68e79110ab0d103840.gif)
(2)我們將這兩個(gè)文件通過(guò) FTP 工具,上傳到服務(wù)器上,并放在 Nginx 配置文件所在的同級(jí)目錄下。
![](/d/20211016/3af8bfe72f589687e1d5fd9b55cac7ee.gif)
修改配置并重啟
(1)打開(kāi)你的 Nginx.conf 配置文件,然后將你的443和80端口的 server 信息配置如下:
更多詳細(xì)步驟可以查看阿里云的文檔:Nginx/Tengine服務(wù)器安裝SSL證書
# 直接訪問(wèn) https
server
{
charset utf8;
listen 443;
root /opt/local;
server_name www.zyqok.cn;
ssl on;
ssl_certificate 3067072_zyqok.cn.pem;
ssl_certificate_key 3067072_zyqok.cn.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;
}
# http 跳轉(zhuǎn) https
server
{
listen 80;
server_name zyqok.cn;
rewrite ^/(.*) https://www.zyqok.cn permanent;
}
(2)注意藍(lán)色方框的內(nèi)容是你的域名和 SSL 證書相關(guān)文件。
![](/d/20211016/776cc90fb2dd6367b34ad08afc94556f.gif)
(3)然后重啟你的 Nginx 服務(wù)
進(jìn)入nginx 的 sbin 目錄下,輸入下面命令,重啟 nginx 服務(wù)
./nginx -s reload
![](/d/20211016/4d42ced82619ac9606780c4032838adf.gif)
(4)如果是阿里云的服務(wù)器,別忘了開(kāi)放 80 端口和 443 端口,不然訪問(wèn)不了
不會(huì)配置的可以參考這篇文章:阿里云安全規(guī)則配置
![](/d/20211016/b837bdfe8a229bcad322e458406e7f72.gif)
再次訪問(wèn)
(1)直接 https 進(jìn)行訪問(wèn)(443端口),可以看到是OK的
![](/d/20211016/4b564af0876d51c89211010c261961ab.gif)
(2)然后 http 訪問(wèn)(80端口),他會(huì)自動(dòng)跳轉(zhuǎn)到 https,也是OK的。
![](/d/20211016/8a469c11ef5dfdaf963bead522412593.gif)
至此,你已經(jīng)學(xué)會(huì)了 SSL 證書配置!謝謝閱讀!