さくらのレンタルサーバーでSSL化対応(http→https)する際に注意点と対処法

さくらインターネットでも無料SSL証明書「Let’s Encrypt」が利用できるようになり、使い勝手がよくなってきているサーバーですが、WordpressをSSL化対応(http→https)する際に注意すべき点があるのでまとめてみました。

さくらのレンタルサーバーのHTTPS接続の仕様について

さくらのレンタルサーバーは、リバースプロキシによるHTTPS接続になっているため、SSL化することで他のサーバーと挙動が違ってきます。

「さくらのレンタルサーバ」にて提供しているウェブサーバ (Apache) は、
80番ポートを使用するものと、443番ポートを使用するものとの 2種類に分けられます。
一般的に、80番ポートは「http://」、443番ポートは「https://」という形式でアクセスされ、
「https://」についてはプロクシとして動作します。
そのため、同じディレクトリへのアクセスであっても、その際に呼び出されるウェブサーバ が異なると、
CGIプログラムやウェブサーバが.htaccessなどのファイルを読み込む際、挙動に違いが生じます。
例えば、HTTPとしてアクセスした場合はお手元のコンピュータが、
HTTPSとしてアクセスした場合はサーバそのものがアクセス元となります。

 引用:SSL利用時の注意点

リバースプロキシによるHTTPS接続の影響

通常であれば、httpsに変更してWEBアクセスすると、httpsとしてプログラムが動作しますが、リバースプロキシがあることで、実際に動作するサーバーはhttpsでWEBアクセスしてもhttpとして動作してしまいます。

.htaccessでRewriteCond %{HTTPS}で書かれている場合や、PHPの「$_SERVER[‘HTTPS’]」で書かれているプログラムはhttpsにしてもfalseが返ってしまい判定が正常にできません。

なので、httpsにドメインを統一しようとした時、httpからhttpsにリダイレクトを使用とした場合、無限ループが発生する場合があります。

スポンサーリンク

対処方法

.htaccessの修正

.htaccessファイルを修正します。下記の記述は、httpでアクセスされた場合httpsにリダイレクトさせる記述になります。

※「RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$」はさくらのレンタルサーバー独自な記述です。これが無いと無限ループになります。

共通プログラムに追加修正

次に共通処理部分に下記を追加いします。

Wordpressの場合、設定ファイルであるwp-config.phpの先頭行に記述すると良いです。

WordPressはさくらが提供しているプラグインを使おう

手っ取り早く設定を変更したい場合や、サーバー独自のプログラムを書きたくない場合は、さくらが提供しているプラグインを使いましょう。

詳細は下記にまとめています。WordPressの設定を変更するを参考にしてみてください。

さくらのレンタルサーバーで無料SSL証明書「Let’s Encrypt」を設定する方法

2017.12.14

まとめ

さくらのレンタルサーバーは、他のレンタルサーバーと違ってちょっとクセがありますが、上記の設定で正常に動作させることができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です