SSL證書
進入騰訊雲服務器 - 搜索SSL證書 - 證書管理- 申請免費的SSL證書
審覈通過將證書下載到本地解壓,解壓結果獲得5個文件,如下圖:
通過Nginx配置證書,我們只需Nginx文件下的證書文件和私鑰文件傳到服務器, 並放到Nginx的配置文件路徑
1_www.sitven.cn_bundle.crt
證書文件2_www.sitven.cn.key
私鑰文件
配置文件路徑:/usr/local/nginx/conf (此處爲默認安裝目錄,請根據實際情況操作)
配置Nginx
編輯 Nginx 根目錄下的配置文件nginx.conf
文件。修改內容如下:
注:此操作可通過執行 vim /usr/local/nginx/conf/nginx.conf
命令行編輯該文件。由於版本問題,配置文件可能存在不同的寫法
例如:Nginx 版本爲 nginx/1.15.0
以上請使用 listen 443 ssl
代替 listen 443
和 ssl on
server {
#SSL 訪問端口號爲 443
listen 443 ssl;
#填寫綁定證書的域名
server_name www.sitven.cn;
#證書文件名稱
ssl_certificate 1_www.sitven.cn_bundle.crt;
#私鑰文件名稱
ssl_certificate_key 2_www.sitven.cn.key;
ssl_session_timeout 5m;
#請按照以下協議配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#請按照以下套件配置,配置加密套件,寫法遵循 openssl 標準。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
# 網站主頁路徑, 此爲我博客項目。此路徑僅供參考,具體按照實際需求操作
uwsgi_pass 127.0.0.1:8001;
include /etc/nginx/uwsgi_params;
}
}
配置完成,可通過執行以下命令驗證配置文件問題
sudo nginx -t
若存在問題,請您重新配置或者根據提示修改存在問題
比如證書和私鑰文件沒放到正確的路徑, Nginx
就會提示沒有這樣的文件,如下圖:
我們根據錯誤提示將證書與私鑰放到正確的路徑後重新進行驗證
若配置不存在問題,如下圖:
我們重啓 Nginx,即可使用 https://www.sitven.cn
進行訪問
HTTP重定向HTTPS
http
協議通過80
端口通訊的而https
協議通過443
端口通訊, 所以我們需要做一個重定向, 把80端口的請求重定向到443端口,我們在Nginx配置文件的上一個代碼塊基礎上增加一個server節點提供重定向服務
server {
listen 80;
server_name www.你的域名.cn;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
如此,我們通過http協議訪問網站時會自動重定向到https
反向代理異常處理
1. 因爲我的Jenkins
也是通過Nginx
反向代理的,所有出現https
反向代理http
靜態資源訪問無法加載的情況,Jenkins
自動化測試結果的html
報告無法通過相對路徑加載頁面靜態文件
解決方法:
add_header Content-Security-Policy upgrade-insecure-requests;
只需要在我們要代理的地方加入即可,代理的Jenkins則加入到Jenkins的location中,如下圖
2. 因爲個人博客網站博文內容的image
全部存在七牛,Nginx
配置SSL證書後HTTP
重定向到HTTPS
,七牛儲存空間的image都
無法加載
所以,七牛雲儲存空間外鏈域名也需配置SSL證書:
進入騰訊雲服務器SSL證書-證書管理申請七牛雲對象存儲空間配置的外鏈域名所對應的SSL證書
然後進入七牛雲-cdn-域名管理-HTTPS配置,配置上傳SSL證書