レンタルサーバの引っ越し、面倒くさいですよね?しかもサイトをSSL化していると、証明書の移行やwp-config.phpの設定変更、.htaccessの記述書き換えなど、やることが多すぎて非常に大変。今回の記事では主要レンタルサーバ別にSSL設定の方法、http→httpsのリダイレクトの方法から、リダイレクトループやデザイン崩壊の対策まで盛りだくさんにご紹介します!
SSLの設定って何?
最近は皆さんご自身のサイトをSSL化していることが多いと思います。SSL化するとSEOで有利、Chromeで警告が出るなどのこともあり、さらにレンタルサーバで無料SSL機能を提供する会社が増えているという背景もあります。今回は、そんなSSL化したサイトを引っ越すときにSSL設定で困らない方法を、レンタルサーバ会社別にご紹介します!
乗り換え前にこれだけはやる!
とその前に、実際の引越し作業の前にSSL関連でやらなければいけないことをご紹介します!
SSL証明書のバックアップ
これができるレンタルサーバは少ないですが、SSL証明書の主要ファイルである、秘密鍵とサーバ証明書をダウンロードしておきましょう。
今日ご紹介するレンタルサーバですと、さくらのレンタルサーバとmixhostは証明書と秘密鍵のダウンロードに対応しています。
もし、有料の証明書を使っていたとしてもダウンロードに対応していない場合、その証明書は捨てることになりますので注意してください。
プラグインの停止
SSL関連でプラグインを使っている人はプラグインを停止します。リダイレクトだけの機能ならサイトの閲覧に影響はないですが、特にさくらの常時SSLプラグインなどは停止するとサイトのURLがもとに戻るので注意してください。よくわからない場合は停止作業は引っ越しの直前でもOKです。
また、キャッシュプラグインも停止しておく必要があります。キャッシュプラグインはファイルを静的化して高速化するものですが、SSL化の確認時に無用なトラブルを招く場合があるので止めておきます。
SSLリダイレクト設定の削除
.htaccessの編集はみなさんご存知だと思います。サイトをSSL化した際に、httpでのアクセスをhttpsへリダイレクト(転送)する設定をしたと思いますが、この記述はサーバ各社で異なる場合があります。ですので、この設定を削除しておきましょう。
↓このような記述です。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
wp-config.phpからSSL関連記述を削除
サイトをSSL化した際に、デザインが崩壊するなどでwp-config.phpに設定を追記している方が多いと思います。特に、さくらのレンタルサーバ、ConoHaWINGなどです。
ConoHaWING
define('FORCE_SSL_ADMIN', true); if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) { $_SERVER['HTTPS']='on'; }
さくらのレンタルサーバ
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) { $_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; $_SERVER['HTTP_HOST'] = 'ドメイン名'; $_SERVER['SERVER_NAME'] = 'ドメイン名'; $_ENV['HTTP_HOST'] = 'ドメイン名'; $_ENV['SERVER_NAME'] = 'ドメイン名'; }
このような記述は引越し先サーバでトラブルになる場合がありますので一旦削除しておきます。なお、削除すると引越し元のサーバでは正常にサイトが見れなくなりますので、実際には引っ越し直前に行うことをおすすめします。 もし、All in one WP Migrationなどのプラグインを使って引っ越したり、ConoHaWINGやエックスサーバーの乗り換え機能を使って引っ越す場合は、上記の削除作業をやったあとに引越し作業を行うと良いでしょう。
乗り換え後の設定
先に乗り換え後の設定をご紹介しておきます。乗り換え前にプラグインなどを使っていた場合はサイトのURLがhttpに戻っている場合もあります。再度プラグインを入れることでもとに戻すこともできますし、以下で紹介するリダイレクトの記述を自分で書くことでプラグインを使ったときと同等の効果があります。 プラグインによってはサイトのURLを書き換えてくれるものもあります。
これらは、Better Search Replaceというプラグインで修正することができます。元サイトが http://www.example.jp だったら、Search for にこのURLを入れて、Replace with に https://www.example.jp を入れます。Select tables で全部を選択(一番上を選択して、一番下をShift+クリック)して置換します。 これは実は乗り換え前にやっちまってもいいので、できる人はプラグイン止めた後にやっちゃってもいいです。くれぐれもその前にバックアップだけはお忘れなく。 それでは、主要レンタルサーバごとにSSL設定と引越し時の注意事項を見ていきましょう。
エックスサーバーに引っ越しする場合
エックスサーバの特長
エックスサーバーはなんと言っても高速なレンタルサーバーで有名ですね。最近はエックスアクセラレータVer2というキャッシュ機能が追加されてよりページ閲覧が高速にできるようになりました。運用も15年を超えておりそういった意味でもかなり安心できるサーバです。
ドメイン設定や無料SSLの設定にやや時間がかかる
エックスサーバーはドメイン設定や無料SSLの設定に比較的時間がかかります。独自ドメインを追加したり、無料SSLを設定しても1時間程度有効になるまで時間がかかる場合があるので、引越し作業をするときは注意が必要です。ネームサーバーの切り替えが完了してから無料SSL設定を始めるので、ちょっと時間が必要になります。
WordPressやSSLリダイレクトの設定は標準で大丈夫
.htaccessやwp-config.phpでSSL関連の記述を書くときは一般的な内容で大丈夫です。
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
wp-config.php
特に記述は必要ありません。
さくらのレンタルサーバに引っ越しする場合
さくらのレンタルサーバの特長
さくらのレンタルサーバは独自カスタマイズやクセが強いなどと言われていますが、現在は驚くほどクセが無くなっています。2018年にnginx化のリニューアルをしているようですが、その際にWordPress関連の面倒な設定が一掃されてエックスサーバーと同様の標準設定で対応できるようになりました。ドメインにwwwがついている場合にwp-config.phpをいじる必要がありましたが、これも不要になっています。
2018年のリニューアル以降、WordPressが速く動作するPHPモジュールモードを導入しており、これを利用するとこれまでの遅かったさくらサーバーが嘘のように速くなります。価格も500円台で非常に安く、お値段以上にパフォーマンスのよいサーバーです。
ドメイン設定やSSL設定にかかる時間は比較的速い
無料SSL設定は高速で、最短20分ぐらい、遅くても1時間ぐらいで完了する印象です。ドメインを追加して有効になるまでの時間は、ドメインのネームサーバーを変更するか、Aレコードだけ変更するかの設定方法によります。さくらのレンタルサーバは非常に自由度が高いので、どちらでも設定できます。おすすめは外部のネームサーバ(お名前.comなど)を利用する方法です。これをやればサイトが見れなくなる時間を最小限にできます。
ただし、ドメインの向き先がさくらになっていないと無料SSLの設定ボタンが押せないので注意が必要です。
WordPressやSSLリダイレクトの設定は標準で大丈夫
.htaccessやwp-config.phpでSSL関連の記述を書くときは一般的な内容で大丈夫です。さくらは特殊設定が必要と書いてあるブログが多いですが、全て古い内容です。
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
wp-config.php
特に記述は必要ありません。
ロリポップに引っ越しする場合
ロリポップの特長
ロリポップもクセがなくて標準的な構成です。さくらと同様に月500円程度でWordPressのサイトが開けるコスパの高いのが売りです。エックスサーバーのXアクセラレータと似たようなコンテンツキャッシュという機能があり、キャッシュ機能でサイトが高速閲覧できます。
コントロールパネルが見やすく、操作も簡単でユーザ数が非常に多いため困ったときに助けてくれるブログがたくさんあります。
無料SSL設定時に注意が必要
ロリポップは、無料SSL設定をする際にドメインのネームサーバ全体をロリポップへ向ける必要があります。ドメインの使い方については別記事を参照してください。
それ以外は、設定速度などはそこそこの速さです。
WordPressやSSLリダイレクトの設定は標準で大丈夫
.htaccessやwp-config.phpでSSL関連の記述を書くときは一般的な内容で大丈夫です。
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
wp-config.php
特に記述は必要ありません。
mixhostに引っ越しする場合
mixhostの特長
mixhostはアフィリエイターに人気の比較的新しいレンタルサーバです。コントロールパネルに特徴があり、他社とは違ったcPanelという汎用的なものを採用しています。cPanelは別個の製品として存在しているためレンタルサーバ会社はコントロールパネルの開発に人手をかけなくてよく、コアな部分に注力できるというメリットがあります。反面、外国の製品なので使い勝手はちょっとクセがあります。エックスサーバやさくらに慣れているとちょっと戸惑うことがあるかもしれません。慣れれば設定できる項目はだいたい一緒なので大丈夫ですし、自由度が高い部分や、簡単インストールできるアプリケーションが多いのも特徴です。
また、サイトの速度が非常に速いというのも評判の一つです。エックスサーバーと同程度という評価を多く目にします。
無料SSL設定は自動
ドメインを追加すると勝手にSSL設定がされるのもポイントです。速くて数時間、長くて24時間程度かかるとのことですが、そこまで時間がかかったことはありませんでした。ただ、無料SSLが設定されるまでの間サイトが見れなくなることに注意が必要です。
有料の証明書を入れていて有効期限が切れそうになると、勝手に無料証明書を上書きしてくれる機能があったりして地味に便利です。
WordPressやSSLリダイレクトの設定は標準で大丈夫
.htaccessやwp-config.phpでSSL関連の記述を書くときは一般的な内容で大丈夫です。
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
wp-config.php
特に記述は必要ありません。
ConoHaWINGに引っ越しする場合
ConoHaWINGの特長
ConoHaWINGは最近できたばかりの新しいレンタルサーバです。しかし、運営元のGMOクラウドは元々ConoHaVPSというサーバサービスを運用しており、ノウハウ的には問題ないと思われます。非常に高速、かつ初期費用が必要ない、時間単位で課金されるというのがポイントです。 実際、高速と言われているエックスサーバーやmixhostから多くのアフィリエイターが乗り換えていたのも気になりますね。このブログも現在ConoHaWINGで運用していますが、実は体感速度はエックスサーバーやmixhost、さくらのレンタルサーバ(新)とそんなに変わらないかなという印象です。ただ、エックスサーバーの月額料金と一緒で、初期費用が必要ないので、気軽に使えるメリットがあります。
無料SSL設定は他社と一線を画して利便性高し
ConoHaWINGの無料SSL機能は他社と異なり、ドメイン設定をする前にSSLを開通させられるメリットがあります(Let’s EncryptをDNS認証しているためと思われます)。このため、引っ越しによるサイトの閲覧不可時間を限りなくゼロにできます。無料SSL機能前提の後発レンタルサーバーだけにできる技というところでしょうか。
ただし、ドメイン全体のネームサーバをConoHaへ向ける必要があり、かつ無料SSL設定を実行できるまで1日程度かかることがあります(この間、サーバーは引越し元のままでOKなのでサイトは閲覧できます)。SSLが疎通している状態でネームサーバ設定を変更するので、ダウンタイムがほとんどありません。引っ越しする人にとってのメリットはかなりあります。
リダイレクト設定は自動だが、wp-config.phpで記述が必要
http→httpsのリダイレクトは無料SSLを設定すると勝手に実行してくれるので、設定する必要はありません。引越し時に.htaccessに書いてあったりするとリダイレクトループする可能性があるので事前に削除しておきましょう。 wp-config.phpは編集する必要があります。WordPressでは環境変数HTTPSを使うのですが、ConoHaWINGではこれが無くなってしまうため、つけてあげる必要があります。これをやらないと、ページのデザインが崩壊して見える(cssが読み込まれない)場合があります。
wp-config.php
define('FORCE_SSL_ADMIN', true); if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) { $_SERVER['HTTPS']='on'; }
以上で主要レンタルサーバ別の設定方法は終わりです。この後、ちょっとしたトラブルシューティングをご紹介します。
リダイレクトループやエラーが出る時は別ブラウザで見る
SSLサイトの引越し後、サイトを確認したらリダイレクトループやCookieエラー、デザインエラーが出る際のほとんどの理由はブラウザ側のキャッシュです。まず、いつも使っているブラウザとは別のブラウザを起動し、キャッシュを全部削除してからサイトへアクセスしてみましょう。その上でエラーが出る場合、以下の項目を試してみましょう。
WordPressがデザイン崩壊するときのチェックポイント
引っ越した後にサイトは表示されるんだけどデザインがめちゃくちゃになっていたことってありませんか?これは、WordPressがサイトのHTTP/HTTPSを見極められなくてcssファイルやjsファイルのパス(URL)をhttp://〜で生成したために起こります。
WordPressは環境変数HTTPSのon/offを見てこれらのURLを出し分けるので、環境変数値がSSLなのにHTTPS offになっていたりすると、cssのパスを http:// で出力し、それをブラウザが危険とみなしてブロックしてしまうことでデザイン崩壊が発生します。
これを回避にするには、ConoHaWINGと同じことをすればいいわけです。
wp-config.php
define('FORCE_SSL_ADMIN', true); if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) { $_SERVER['HTTPS']='on'; }
これですね。ConoHaWINGではHTTPSは出力されませんが、 X_FORWARDED_PROTOという値は出力されますので、これがhttpsの場合はHTTPS をonにするように設定ファイルを書くわけです。
同様に、 .htaccessに↓を書いて環境変数を設定することもできます。
SetEnvIf X-Forwarded-Proto "https" HTTPS=on SetEnvIf X-Forwarded-Proto "http$" HTTPS=off
編集しやすい方を選ぶと良いでしょう。(個人的には.htaccessのほうがおすすめです。wp-config.phpに余計な設定を書き込むと後で忘れてしまうからです。)
上に書いている多くのレンタルサーバーではこの設定は必要ありませんが、古い構成のサーバなどで使っている場合は必要になる場合もあります。
リダイレクトループする場合
ERR_TOO_MANY_REDIRECTS(転送設定がループしています)といったエラーが出る場合。これは.htaccessのhttp→httpsの転送設定部分が間違っています。例えば、ConoHaWINGでは環境変数HTTPSが利用できないため、これを.htaccessに書いてもリダイレクト設定条件に引っかからずに全URLが転送されてしまいリダイレクトループします。
ConoHaWINGではhttp→httpsのリダイレクトは勝手にやってくれるのでいいのですが、リダイレクトループする場合は十中八九このリダイレクト設定の書き方が間違っています。一旦.htaccessから記述を削除し、「レンタルサーバ名 SSL リダイレクト」などで検索して設定方法を確認しましょう。
また、前述の環境変数HTTPSがないせいでリダイレクトループが発生する場合もあります。この場合は↑のように設定を変更すると解消する場合があります。
wwwありなしを正規化しようとすると起きる場合もある
リダイレクトを行う理由のもう一つに、www.example.jpとexample.jpを一つに統一するためというものがあります。しかし、過去にwwwありからwwwなしに変更した場合を除いて、一度も両方のURLを同時に使ったことがないなら、特に二つを正規化する必要は無いです。
無理にリダイレクトを入れて設定で混乱してしまうぐらいならやらない方がマシでしょう。SSLのリダイレクトとwwwありなしの正規化を一気にやろうとして上手く行かず、リダイレクトループしてしまう場合も多くあります。こういう時はSSLのリダイレクトだけにしてみるのも解決策の一つです。
まとめ
今回はレンタルサーバ引っ越しの際のSSL設定で気をつけるべきポイントを業者別にご紹介しました。設定内容自体は各社揃ってきているのでそこまで苦労しないと思いますが、SSL設定は事前に削除しておく方がトラブル発生時の問題切り分けが楽になります。
慣れてくると目をつぶっていてもできる引越し作業ですが、慣れないうちはなかなか難しいもの。SSL設定のややこしい面もあいまってちょっとミスするとどんどん混乱していくかもしれません。
引越し作業はとにかく落ち着いて、ゆっくりやるのがポイントです。土日の1日ぐらい使う心持ちで落ち着いてやりましょう。このサイトでは、いずれ汎用的な引っ越し知識の記事も掲載していく予定ですのでお楽しみに!