前言
HTTP 和 HTTPS
我們日常生活中,常見的網址大致分為2種:
一種是基于 http 協議,如:http://www.baidu.com
一種是基于 https 協議,如:https://www.baidu.com
現在很多網站出于安全的考慮,會把網站的域名訪問從 http 已經升級為 https,如果你不知道 http 和 https 的概念,不妨先看看下面這篇文章:HTTP和HTTPS有什么不同
SSL 證書
那么我們如何將 http 升級為 https 呢?
我們要升級 http 為 https,首先需要一個 SSL 證書。 SSL 你可以想象為本科畢業證,有個這個本科畢業證,就能證明你是本科生,就都能去申請本科生門檻的招聘。當然,證書可以由不同院校頒發,比如清華本科畢業證和普通三本院校的本科畢業證,這兩者的含金量肯定是有不同的。SSL證書也一樣,也有不同發簽發機構。
配置方式
當有了域名和SSL證書后,我們就可以將域名網址升級為 https 了,我們常用的做法是在 Nginx 中配置域名的 SSL 證書。
具體過程
開始訪問
(1)下面我以自己的網站,配置我的個人網站 SSL 證書,將我的網站升級為SSL。
我訪問自己網站下的一張圖片( http://www.zyqok.cn/fj.jpg ),這是一個 http 訪問。

(2)然后我們改為 https 訪問,發現是訪問不了的。

下面我們正式開始,將網站改為 https 的請求訪問。
服務器安裝Nginx
首先,我們需要在服務器上安裝 Nginx 環境,如果你服務器已經有Nginx了,那么這一步可以跳過,如果未安裝Nginx,不妨參照
獲取 SSL 證書
由于我服務器是阿里云買的,所以阿里會送幾個免費的SSL證書,下面以阿里云的獲取 SSL 證書過程進行說明。
如果你不是阿里云客戶,那么這一步可以跳過,然后自行百度 “SSL證書” 到相關廠商購買,或者百度 “免費SSL證書” 。
(1)登錄阿里云,然后找到 【SSL證書】一欄,點擊( 因為我已經開通過了該功能,所以你的位置可能和我的位置不一樣,自己去面板找 )。

(2)來到這個面板后,點擊【購買證書】。

(3)選擇免費型,然后購買

(4)當你完成購買后,就會在頁面出現一條對應記錄,然后點擊【證書申請】。

(5)然后寫好你需要升級的域名,比如我要把我的個人網站 http://www.zyqok.cn 升級為 https://www.zyqok.cn
那么此時的域名就填 zyqok.cn,然后填寫好其他信息,點擊下一步,然后這個證書就會向上面提交,進入審核狀態。

(6)當你的申請通過之后,你就可以下載你的SSL證書了,我們點擊右下角【下載】

(7)繼續選擇 Nginx 后面的【下載】

(8)下載完成后,我們就可以得到一個SSL證書的壓縮包

上傳SSL證書到服務器
(1)我們先將證書壓縮包解壓,然后可以得到如下兩個文件。

(2)我們將這兩個文件通過 FTP 工具,上傳到服務器上,并放在 Nginx 配置文件所在的同級目錄下。

修改配置并重啟
(1)打開你的 Nginx.conf 配置文件,然后將你的443和80端口的 server 信息配置如下:
更多詳細步驟可以查看阿里云的文檔:Nginx/Tengine服務器安裝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 跳轉 https
server
{
listen 80;
server_name zyqok.cn;
rewrite ^/(.*) https://www.zyqok.cn permanent;
}
(2)注意藍色方框的內容是你的域名和 SSL 證書相關文件。

(3)然后重啟你的 Nginx 服務
進入nginx 的 sbin 目錄下,輸入下面命令,重啟 nginx 服務
./nginx -s reload

(4)如果是阿里云的服務器,別忘了開放 80 端口和 443 端口,不然訪問不了
不會配置的可以參考這篇文章:阿里云安全規則配置

再次訪問
(1)直接 https 進行訪問(443端口),可以看到是OK的

(2)然后 http 訪問(80端口),他會自動跳轉到 https,也是OK的。

至此,你已經學會了 SSL 證書配置!謝謝閱讀!