WordPressをSSL化・さくらインターネットの場合
さくらインターネットで運用しているWordPressをSSL化する方法をまとめました。さくらインターネットはリダイレクトのコードが特殊なので注意が必要です。
現在は特殊なコードは必要なく、簡単にSSL化できるようになっています
最新版・さくらインターネットでSSL化
サーバーでSSL証明書を取得・設定
さくらインターネット公式サイト【無料SSL】サーバコントロールパネルからの導入手順に従って、SSLを設定。ブログがhttpsに切り替わるまで40~50分ほど待ちます。httpsが利用可能になると、通知メールが来ます。
WordPress管理画面でURLを変更
設定→一般を開き、下記のようにサイトのアドレスをhttp:// を https://に書き換える。
内部リンクを置換
記事内にある内部リンクや画像は、Search RegexというWordPressのプラグインを使ってhttp:// を https:// に置き換えが可能です。
置換する時の設定は、基本的にデフォルトのままで大丈夫です。
Search patternにサイトのSSL化前のURLを入れ、Replace patternにサイトのSSL化後のURLを入れます。
デフォルトの設定で「Search」をクリックすると、検索結果として置換される予定の箇所が赤く強調表示されます。Search Regexは一度置換してしまうと戻せないため、検索結果をよく確認して下さい。ここで確認して問題無ければ「Replace & Save」をクリックして一括置換します。
ちなみに、https://(絶対パス)に置換するのではなく、相対パスに置換することも可能ですが、SEO対策として絶対パスに置換することをオススメします。
内部リンクの置換確認
記事内にある内部リンクや画像は、Search Regexで置換できましたが、ウィジェット内テキストなどはSearch Regexの置換対象外です。そのため、ウィジェット内にhttp:// の記載がある場合は https:// に書き換える必要があります。
他にも、テーマによって異なりますがサイトタイトル画像・ロゴ画像なども https:// に置換されないため、画像を選択し直す必要があります。
確認方法として、Google Chromeを使うと便利です。Chrome でサイトを開き、右クリックで検証を選択。consoleを選ぶと、http:// になっている箇所を示してくれます。
リダイレクトの設定は、全てが終わってから行う方が良いとされていますが、さくらインターネットの場合は、先に下記のリダイレクト設定を行ってから、サイトの確認を行うことをオススメします。さくらインターネットの仕様で、SSLでの接続であることを明示していない場合、WordPressがSSL接続と判定せずに、http接続と判断してしまい、その結果アドレスが http:// となりますが、wp-configに追記することにより、http://のファイルが https:// に置き換わります。
リダイレクト設定
さくらインターネットはリダイレクトのコードが特殊です。「X-Sakura-Forwarded-For」という、他のサーバーでは必要のない記述がないとリダイレクトが効きません。
.htaccessファイルに下記を記述。
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
.htaccessファイルの一番上にかいておいた方がいいです。wordpressが吐き出したコードより下に書くと、リダイレクトが効きません。
参考記事:さくらのレンタルサーバーで、常時SSLにするための.htaccessの設定
さらに、wp-config.phpに下記を記述。
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
$_SERVER['HTTPS'] = 'on';
$_ENV['HTTPS'] = 'on';
}
なお、このwp-configの追記もwp-configの一番上にかいておいた方良いです。
参考記事:さくらのレンタルサーバー上のWordPressの常時SSL化でハマりまくったのでシェアしておきます
wp-configにリダイレクトもまとめる
.htaccessファイルにリダイレクトの記述をせずに、下記をwp-config.phpに書く方法もあるようです。今回は利用しませんでしたが、覚え書きとして残しておきます。
$CNF_HOST_NAME = (substr($_SERVER['HTTP_HOST'], 0, 4)==='www.')? $_SERVER['HTTP_HOST']: 'www.'.$_SERVER['HTTP_HOST'];
// If SSL/TSL on SAKURA
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
$_SERVER['HTTPS'] = 'on';
$_SERVER['HTTP_HOST'] = $CNF_HOST_NAME;
}
// If not SSL/TSL or different host name, redirect.
if(!array_key_exists('HTTPS', $_SERVER) || $_SERVER['HTTPS']===''
|| $_SERVER['HTTPS']==='off' || $_SERVER['HTTP_HOST']!==$CNF_HOST_NAME) {
header('Location: https://'.$CNF_HOST_NAME.$_SERVER['REQUEST_URI'], true, 301 );
exit();
}
参考記事:さくらレンタルサーバーのSSL/STL化についてのエトセトラ
Google Analytics, Search Consoleの設定を変更
Google Analyticsはプロパティ設定「デフォルトの URL」のプルダウン部分をhttp:// から https://に変更するだけでOK。
Search Consoleは登録URLを変更することができないため、新規に登録をし直すこと。
ASPの登録URLを変更
大手アフェリエイトサイトなら、サイトの登録情報をhttp:// から https://に自分で書き換えられました。Google AdSenseは、古いコードの場合http:// ですが、最近取得したコード場合は https://になっているため、対応は不要です。
全ページチェック
Google Chromeの検証consoleのウィンドウを開いた状態で、サイトのページ送りをしていくと楽で良いです。検証consoleに何も記載がなければ問題なし。記載がある場合はどこかしらに http:// が残っているので、https:// に書き換えを行って下さい。
分割してSSL化する場合のオススメ手順
1日目、作業時間15分
- プラグイン:Search Regexを入れておく
- サーバーでSSL証明書を取得・設定
2日目、作業時間15分
先にSSL化したwww付きドメインのリダイレクト設定を行っておく
https://eco-rich-life.com/it/host-redirect
3日目、作業時間40分(トラブルがなければ)
- バックアップ
- WordPress管理画面でURLを変更
- 内部リンクを置換
- 内部リンクのチェック
- リダイレクト設定
- Google Analytics, Search Consoleの設定を変更
- ASPの登録URLを変更
だいたいトラブルが起こると思うので、3日目は40分で終わらないと思っていたほうがよいです。
私の場合はこんなトラブルがありました。
https://eco-rich-life.com/it/ssl-its-own-directory
参考記事:ブログの完全HTTPS化を完了、HTTPからHTTPSへの移行プロセスを共有
現在は特殊なコードは必要なく、簡単にSSL化できるようになっています
最新版・さくらインターネットでSSL化
ディスカッション
コメント一覧
まだ、コメントがありません