• 生活の知恵
  • 妊娠・育児
  • IT
  • レシピ
  • 水耕栽培

WordPressをSSL化・さくらインターネットの場合

2018年3月30日ITSEO対策, wordpress

さくらインターネットでSSL化


さくらインターネットで運用しているWordPressをSSL化する方法をまとめました。さくらインターネットはリダイレクトのコードが特殊なので注意が必要です。

現在は特殊なコードは必要なく、簡単にSSL化できるようになっています
最新版・さくらインターネットでSSL化

サーバーでSSL証明書を取得・設定

さくらインターネット公式サイト【無料SSL】サーバコントロールパネルからの導入手順に従って、SSLを設定。ブログがhttpsに切り替わるまで40~50分ほど待ちます。httpsが利用可能になると、通知メールが来ます。

WordPress管理画面でURLを変更

さくらインターネットでSSL化

設定→一般を開き、下記のようにサイトのアドレスをhttp:// を https://に書き換える。

内部リンクを置換

さくらインターネットでSSL化

記事内にある内部リンクや画像は、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分

  1. プラグイン:Search Regexを入れておく
  2. サーバーでSSL証明書を取得・設定

2日目、作業時間15分

先にSSL化したwww付きドメインのリダイレクト設定を行っておく

3日目、作業時間40分(トラブルがなければ)

  1. バックアップ
  2. WordPress管理画面でURLを変更
  3. 内部リンクを置換
  4. 内部リンクのチェック
  5. リダイレクト設定
  6. Google Analytics, Search Consoleの設定を変更
  7. ASPの登録URLを変更

だいたいトラブルが起こると思うので、3日目は40分で終わらないと思っていたほうがよいです。
私の場合はこんなトラブルがありました。

参考記事:ブログの完全HTTPS化を完了、HTTPからHTTPSへの移行プロセスを共有

現在は特殊なコードは必要なく、簡単にSSL化できるようになっています
最新版・さくらインターネットでSSL化