為halo博客添加ssl證書(配合nginx反向代理)


前言

注:本教程並不是每一個步驟都十分詳細,但是關鍵步驟都給到了,僅作一個參考
本教程的實驗環境:阿里雲一台,騰訊雲一台,阿里雲有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博客為文章添加訪問密碼的功能也就可以使用了,親測可用。

教程到此便結束了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM