さくらのレンタルサーバー SSL化
httpでアクセスすると、Chromeが「保護されていない通信」として警告を出すようになりました。印象が悪いのでSSL化が必須となりましたが、長らく放置してきました。ここにきて重い腰を上げ、SSL化に取り組みます。
手順は下記の通りです。
1.SiteGuradが導入されているので、ログインページ変更を OFF にします。トラブル防止のため、標準状態にもどすということです。
2.さくらのコントロールパネルから、無料証明書を申し込みます。
しばらくたつとメールが届き、https でアクセスできるようになります。
お申込みいただきましたSSLサーバ証明書の発行が完了いたしましたので、以下の通りお知らせいたします。
=========================================
《 SSLサーバ証明書の情報 》
レンタルサーバアカウント:【アカ名】
サーバ証明書種別:Let’s Encrypt
コモンネーム :subiebear.com
=========================================
すでにSSLサーバ証明書がお客様のレンタルサーバにインストールされましたので、SSLをご利用頂ける状態になっています。
現在はhttp/httpsの両方でアクセスできますので、必要であればお客様にて適宜、http→httpsのリダイレクト設定を行ってください。
しかし、下記のようなエラーとなる場合があります。subiebear.com は正引きできるけど、www.subiebear.com が正引きできないときです。下記は会社のドメインで実際失敗したときのメールを書き換え、失敗例として挙げさせていただきました。
お申込みいただきましたSSLサーバ証明書の申請情報に関しまして、申請内容に問題があったため、証明書の発行ができませんでした。
=========================================
《 SSLサーバ証明書の情報 》
レンタルサーバアカウント:【アカ名】
サーバ証明書種別:Let’s Encrypt
コモンネーム :subiebear.com
=========================================
お客様のドメインが認証局のドメインチェックに該当したため証明書の発行ができません
上記のエラーに対応するには、www.subiebear.com の CNAMEレコード を登録します。www.subiebear.com が正引できるようになった状態で、再度、旧コントロールパネルで 登録 → 無料SSLの設定 へ進む とクリックすると
発行に失敗しました。サポートサイトのよくある質問をご確認ください。
と出る場合があります。一度発行に失敗しているときは、失敗した証明書の情報を削除しないといけないようです。しかし、旧コントロールパネルではできません。新コントロールパネルで ドメイン/SSL → SSL → 全削除 を実行することで削除できます。
失敗したゴミ情報を削除したうえで、旧コントロールパネルで 登録 → 無料SSLの設定 へ進むと、こんどは正しく証明書が発行されます。
3.設定 → 一般 の変更を実施します。
WordPress アドレス (URL) http://subiebear.com → https://subiebear.com
サイトアドレス (URL) http://subiebear.com → https://subiebear.com
に書き換えます。この設定をすると、管理ページは自動的にhttpからhttpsにリダイレクトされるようになりましたが、どういう理屈かわかりませんが、初期ドメインのほうに共有SSLの設定がないと、リダイレクトしないようでした。
4.Search Regex プラグインを使用して、httpの箇所を、httpsに書き換えます。Search Regexで書き換えられない箇所もあるので、それは個別に書き換えます。http://subarukuma → https://subarukuma に Replace & Save を実行したところ450個ありました。
●メニュー
外観 → メニューより ホームのカスタムリンクの箇所を https に修正
●トップページの画像と、フッターの画像
外観 → テーマ → カスタマイズ より、画像の上にある要素の編集アイコンをクリックし画像を選択しなおします。URLを直接編集することはできません。
●3.3PRエリア
上記と同様に画像を選択しなおします。リンク先のページを https に直します。
5.リダイレクト設定
www/wp***/.htaccess ファイルの変更
SITEGUARD によって設定された箇所がありますが、そこには書き込みません。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#==== この二行を書き込む
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#==== 中略
# END WordPress
これで、httpにアクセスしても、httpsへ自動的にリダイレクトされるようになりました。
6.最後に、SiteGurad の設定を元に戻します。
これで、https化が完了しました。なお、さくらで提供されているSSL化プラグインは使わないほうがいいです。どこを書き換えているのかを把握して使う(有効化したらこの部分が書き換わる、無効化したらこの部分が戻るを把握)ならよいかと思いますが、それができるなら、このプラグインを使わなくてもSSL化できるということになるからです。よくわからないまま使うのはやめたほうがいいと思います。レンタルサーバーの引っ越しで苦労することになると思いますので。