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