WordPressを常時SSL化するまとめ

サーバー構築

WordPress の常時SSL化の方法をまとめてみる

なんか、久しぶりにITネタ書くなw

先日、当サイトを常時SSL化しましたので、そのとき参考にした情報をまとめてみます。
参考にすれば必ずできるとは言いませんが、私はどうにかなりました。

ちなみに環境は以下のとおりです。

  • OS CentOS6.9
  • Webサービス nginx 1.13.6
  • WordPress 4.8.2 日本語版

やったことを簡単にまとめると、

  1. サーバ証明書の取得
  2. WebサーバのSSL化
  3. WordPressのHttps対応
  4. ポート80→ポート443転送設定

という感じです。

では、紹介したいと思います。

1.サーバ証明書の取得

これは以下のサイトのまんまです。

さくらのナレッジ
Let’s EncryptのSSL証明書で、安全なウェブサイトを公開
https://knowledge.sakura.ad.jp/5573/

有効期間は3ヶ月とは言え、無料でサーバ証明書を発行してくれる、ありがたい Let’s Encrypt が提供する自動ツールを使って、紹介記事のまんまでサクッと取得できました。丁寧に書いてあるので、詰まるところはありませんでした。

2.WebサーバのSSL化

これは以下のサイトを参考にして、Wordpress用のコンフィグファイルを編集します。

Nginx でSSLを使ってみた(追記:SNIを含めてマルチドメインへの対応)
https://server-setting.info/centos/apache-nginx-12-ssl.html

参考サイトではポート80とポート443の定義を、同じServerタグで書いてやってますが、私の環境ではあとで行うことになる、ポート80→ポート443への転送の設定でうまくいかず、Serverタグをポート80用、ポート443用と分けて記述しました。

server {
  listen 80;
  server_name www.hogehoge.com;
  return 301 https://$host$request_uri;
}
server{
  listen  443 default_server ssl;
・・・
}

この時点で https://~ でアクセスできるようになると思います。
ただ、画像などサイトを途中からSSL化した場合に、リンク先がhttpになっていて、うまく表示されない、あるいはChromeなどのブラウザで確認すると、httpとhttps混在しているという表示になっていることがあります。

3.WordpressのHttps対応

そういうときは、Wordpressのプラグインで「Velvet Blues Update URLs」をインストールして、http→httpsへ一括変換します。同じようなことを行う有名なプラグインで、「Search Regex」というのがありますが、そちらでも良いと思います。
私はうまく行かなかったので、使用するプラグインを変更したというだけです。うまくいく方はどちらでもかまわないと思います。

あと、nginxだと、/etc/nginx/conf.d/default.conf というのがいると、ポート80の定義が重複しますので、削除するか、別名にするかしといてください。私はこれにハマりましたw

それができたら、以下のサイトを参考にして、Wordpressの設定を変更します。

https://nelog.jp/wordpress-ssl

3.WordPressの設定からURLを変更する

4.ポート80→ポート443転送設定

これはもう設定だけの話なので、なんですがWordpress用のコンフィグにreturn~と転送設定を書いてやります。

server {
 listen 80;
 server_name www.hogehoge.com;
 return 301 https://$host$request_uri;
}

これで常時SSL化されるはずです。

以上、かんたんですが、常時SSL化のまとめでした。

 

コメント

タイトルとURLをコピーしました