為Nginx配置 SSL 證書 + 開啟 HTTPS網站
阿新 • • 發佈:2018-12-22
1. SSL背景介紹
谷歌從 2017 年起,Chrome 瀏覽器將也會把採用 HTTP 協議的網站標記為「不安全」網站;蘋果從 2017 年 iOS App 將強制使用 HTTPS;在國內熱火朝天的小程式也要求必須使用 HTTPS 請求。
2. SSL證書型別
通常來說,SSL 證書分為三大類,他們的安全性是遞增的,當然價格和安全係數成正比。
DV (Domain Validation Certificate) DV 證書適合個人網站使用,申請證書時,CA 只驗證域名資訊。幾分鐘之內就能簽發。 OV ( Organization Validation Certificate) OV 證書需要認證公司的資訊。1-2天簽發。 EV ( Extended Validation Certificate) EV 證書的認證最為嚴格,一般會要求提供紙質材料。簽發時間也較久。
申請方法
- 在這裡提供幾個免費SSL申請渠道
- 七牛提供申請免費SSL的渠道
- 阿里雲域名服務提供的免費SSL證書
- 完成後將證書和key內容複製出來!
- 然後(如果檔案、目錄不存在要自行建立):
- 將第一部分內容複製到
/var/cert/yourserver name.crt
檔案中! - 將第二部分內容複製到
/var/cert/yourservername.key
檔案中!
為了確保更強的安全性,我們可以採取 迪菲-赫爾曼金鑰交換
進入 /var/cert/
目錄並生成一個 yourservername.pem
cd /var/cert/
openssl dhparam -out yunfeng365.pem 2048
# 如果你的機器效能足夠強大,可以用 4096 位加密
檔案準備完畢後,進行Nginx 配置!
-
在你網站nginx配置檔案目錄中(eg: /etc/nginx/nginx.conf )
-
配置80埠301跳轉
server {
listen 80 default_server;
# Make site accessible from http://localhost/
server_name zzutcy.top;
server_name www.zzutcy.top;
return 301 https://zzutcy.top$request_uri;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /var/www/hexo;
index index.html index.htm;
}
ssl配置
server {
listen 443;
server_name zzutcy.top;
server_name www.zzutcy.top;
# ssl設定
ssl on;
ssl_certificate /var/cert/zzutcy.crt;
ssl_dhparam /var/cert/zzutcy.pem;
ssl_certificate_key /var/cert/zzutcy.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
// 你的站點配置
location / {
root /var/www/hexo;
index index.html index.htm;
}
}
重啟Nginx使配置生效!
$ sudo systemctl restart nginx