LoginSignup
0
5

More than 5 years have passed since last update.

ロードバランサー配下な Apache & Nginx で常時 SSL 接続のためのリダイレクト Config

Last updated at Posted at 2017-05-18

常時 SSL 接続を行いたいウェブサイトがあります。

ただ、ロードバランサーなどで、https -> http 変換で Web サーバーに来ている構成だったりします。

その時の解決方法です。

前提

  • ロードバランサーで https -> http をしている
  • ロードバランサーで http_x_forwarded_proto のヘッダーをきちんと追加している

Apache の .htaccess or Conf

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

番外編:さくらインターネットの場合

さくらインターネットのレンタルサーバープランで常時 SSL 接続する場合、実は、ロードバランサーみたいなものの配下にあるので、通常の .htaccess では動きません。

下記の設定が必要です。

RewriteEngine on
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Nginx の Conf

nginx.conf の server{}の中に下記を入れる。(Apache のバーチャルホスト的な設定ファイルの構成な人は、別の場所に保存されているかもなので気をつけてください。)

#### https Redirect Under Load Balancer
if ($http_x_forwarded_proto = 'http') {
    return 301 https://$host$request_uri;
}

クレジット

この記事が役に立ったら、「 CMS は concrete5 が一番」と頭の中で10回唱えてください。

CMS は断然 concrete5で決まり。

0
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
5