繼上篇介紹 Letsencrypt 開放申請免費 SSL 憑證,就把我的 Blog 強制使用 https 連線,Wordpress 強制使用 SSL 連線有幾個步驟需要注意,底下會是搭配 Nginx 相關設定,建議如果有裝任何 Plugin,都先進去後台暫時關閉。Nginx 1.9.5 之後有把 http2 模組加入,所以本篇會是以設定 http2 為主,當然跟 spdy 設定一樣,只是換個名字而已。
資料庫相關設定
這邊可以從 WordPress 後台修改,或者是從資料庫內的 wp_options
直接改 siteurl
及 home
這兩個 value。
WordPress 設定檔
請打開 wp-config.php
加入底下設定
define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true);
設定 Nginx
將原本 80 port 設定 301 轉到 https
server { # don't forget to tell on which port this server listens listen 80; # listen on the www host server_name blog.wu-boy.com; # and redirect to the non-www host (declared below) return 301 https://blog.wu-boy.com$request_uri; } server { listen 0.0.0.0:443 ssl http2; # include ssl config include ssl/blog.conf; .... }
比較注意的是,如果 Nginx 有設定 fastcgi_param HTTPS off;
,請務必移除,否則你的 WordPress 網站會產生 Loop。最後附上在 SSllabs 驗證的截圖