繼上篇介紹 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 驗證的截圖
See also
- 將部落格從 Wordpress 轉換到 Hugo
- Traefik 搭配 Docker 自動更新 Let’s Encrypt 憑證
- 用 Caddy 申請 Let’s Encrypt Wildcard 憑證
- 用 Nginx 來架設線上即時縮圖機
- 從 Nginx 換到 Caddy
- Let’s Encrypt 將在 2018 年一月支援 Wildcard Certificates
- 在 Go 語言用一行程式碼自動化安裝且更新 Let’s Encrypt 憑證
- Caddy 搭配 Drone 伺服器設定
- 申請 Let’s Encrypt 免費憑證讓網站支援 HTTP2
- 來聊聊 PHP & JavaScript & CSS 的 Coding Style