Coreserver+WordPress で無料SSL設定する

8月から実施してたらしいCoreserverのリニューアルにより、ようやくウチのサイトでも無料でSSLが使えるようになったので設定してみたメモ。例によって手探りでやっています。

手順 とりあえず動くところまで

1. Coreserverで無料SSLの設定

Coreserverの新コントロールパネルにログインして、左メニューの「サイト設定」-> 設定するサイト ->「サイト設定の変更」の順に移動。

ここで「無料SSL」を選択します。とりあえずCoreserverでの設定はこれだけ。

Coreserverサイト設定

なお私は無謀にも、ここで同時にPHPのバージョンも5.6から最新の7.1に変更しました。案の定この後トラブります。

2. 証明書が適用されるまでしばらく待つ

SSL証明書が正しく適用されるまでしばらく待ちます。私の場合4-6時間ぐらいでした。適用されるまでは、https:// でサイトにアクセスすると安全な接続ではない的なエラーが出ると思います。https:// で接続してサイトが見えるようになればとりあえずOK.

3. いろいろ設定

まずWordpressのダッシュボードにhttpsでログインしようとしたところ、いきなり Internal server error で入れず。ここは慌てずに、常套手段のプラグイン一時停止(FTPでpluginフォルダをリネーム)によりログインできました。

設定 -> 一般から「WordPress アドレス (URL) 」と「サイトアドレス (URL)」を https:// のものに変更(下図)。

Wordpress 一般設定

htaccessに http:// -> https:// へリダイレクトする記述(ググれ)を追加。

robots.txt 内の http:// を https:// に書き換え。

4. 問題発生

ここまで設定して、pluginフォルダの名前を元に戻したところ、以下のよくわからん問題が発生。

  • ダッシュボードからプラグイン関連のページに入ろうとするとログイン画面に飛ばされ、ログインしようとすると Internal server error になる
  • pluginの下のjetpackフォルダをリネームするとエラーにはならなくなるが、プラグイン関連のページに行くとやはりログイン画面に飛ばされ、何度ログインしようとしてもログイン画面から進めない(プラグイン関連以外のページは普通に使える)

結論だけ言うと、wp-adminフォルダに以下のhtaccessファイルを置いていたのが問題だったようで、これを削除したところプラグイン画面に入れるようになりました。その後新規プラグインインストール画面から、Jetpackの再インストールで元に戻った感じ(リネームしたjetpackフォルダを元に戻すのではエラーが再発しダメだった)。

#CGIモードでPHPを動かす
<Files ~ "^(async-upload|update-core|update|plugins|plugin-install)\.php$">
AddHandler application/x-httpd-phpcgi .php
</Files>

指定されているphpファイルがそれっぽく、やはりこのhtaccessが原因だったように見えます。このhtaccessは昔CoreserverだとPHPのセキュリティ警告が出るとかの問題があって、その対策で置いていたものだと思います。たぶんSSL化には関係なく、今回PHP7.1にしたせいでエラーが出てしまったのではないかと……

似た感じの症状: トピック: 「今すぐ更新してください」先のログイン画面から進まない « サポートフォーラム — WordPress

残された問題

ここまででとりあえず一通り動く感じにはなりましたが、この記事を書いている途中で画像アップロードがHTTPエラーになり、できないことが判明。解決できたらまた更新します。
今やってみたらアップロードできた。なんなんだいったい……

その他今後やること

HSTSの設定はサーバー側でやっているようだ

所感

Coreserverは安いので(最安プラン: 12か月契約で2,400円)ずっと使っているんですが、ここ数年ぐらいはページの表示が遅い感じで、サーバー引っ越ししないとなーと思いつつ全然ブログ書いてないのでとりあえず放置してました。今回のリニューアルでようやく時代に追いついた感じですので、とりあえずまた数年はこのまま放置してしまいそうです。

%d人のブロガーが「いいね」をつけました。