前言
注:本教程並不是每一個步驟都十分詳細,但是關鍵步驟都給到了,僅作一個參考
本教程的實驗環境:阿里雲一台,騰訊雲一台,阿里雲有halo博客,騰訊雲為nginx服務器,先前已經配置好為halo博客的nginx反向代理服務器,現在我們要為nginx添加ssl證書。
關於先前配置的反向代理:
起初這個騰訊雲的nginx是yum拉取的,然后直接在/etc/nginx/conf.d/
中添加halo.conf,內容如下:
upstream halo_server{
xx.xx.xx.xx:8090;
}
server{
listen 80;
server_name halo;
location \ {
prxoy_pass http://halo_server
}
}
簡易版的反向代理便做好了。
添加ssl證書
域名是騰訊雲的,於是進去申請對應域名的免費的ssl證書,點擊證書詳情可以下載證書:
由於網上關於nginx添加ssl證書的教程都是源碼安裝的,於是我就把先前的nginx直接yum remove了(保留了其/etc/nginx目錄,里面的halo.conf我們可以留着復用),先跟着網上教程做來看看
下載源碼,編譯安裝:
wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar zxf nginx-1.9.9.tar.gz
cd nginx-1.9.9
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
關於源碼安裝nginx的更多細節:https://www.cnblogs.com/sillage/p/14753649.html
在其主配置文件/usr/local/nginx/conf/nginx.conf
,http{ }中我加入了一句include /etc/nginx/conf.d/halo.conf;
把之前的halo的配置文件包括進去(你也可以把halo.conf放在其他位置,絕對路徑正確即可)
然后對halo.conf進行修改添加ssl證書:
upstream halo_server{
server XX.XX.XX.XX:8090;
}
server {
listen 80;
listen 443 ssl;
server_name halo;
ssl on;
ssl_certificate /etc/nginx/cert/Nginx/1_XXXX.crt;#從騰訊雲下載的證書相關文件,存放路徑自定義
ssl_certificate_key /etc/nginx/cert/Nginx/2_XXXX.key;#從騰訊雲下載的證書相關文件
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://halo_server;
}
}
按照上述這么操作其實我覺得,就在yum拉取的nginx環境中,對halo.conf添加如上內容,也應該是沒有問題,這個請讀者自行探索
由於我的域名啟用了cdn,去cdn域名管理添加https,強制跳轉建議開啟並設置為http強制跳轉為https,基礎設置里,有個回源協議,可以選擇協議跟隨:
然后去halo博客后台為將網站鏈接改為https形式,如果訪問提示網站並不完全安全,那么是因為網站中還包含有http形式的鏈接,我檢查了一圈,發現是頭像的原因,於是將頭像換為https形式后就ok了:
添加ssl證書后,halo博客為文章添加訪問密碼的功能也就可以使用了,親測可用。
教程到此便結束了