2017年4月26日水曜日

AWSでWordPressをSSL化するときにハマったこと

リダイレクトループでアクセスできなくなる

参考:
エックスサーバーでWordpressをSSL化(https)する時に無限ループでハマった - Qiita
http://qiita.com/sygnas/items/a2ffa7b3c858c3f557c8

私のサーバーはAWSだったのですが、上記記事と同じように、wp-config.phpを書き換えないとダメでした。下記の2行を設定して強制的にhttpsにしないと無限ループが発生します。

wp-config.php内に以下を追記
$_SERVER['HTTPS'] = 'on';
$_ENV['HTTPS'] = 'on';

そして、WordPressのインストールされているディレクトリ(以下例では wp)内の .htaccess ファイルを書き換えるとOKとなりました。

修正前
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /wp/
  RewriteRule ^/?(.*) https://%{HTTP_HOST}/wp/$1 [R=301,L]
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /wp/index.php [L]
</IfModule>

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP:X-Forwarded-Proto} !=https
  RewriteRule ^/?(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /wp/index.php [L]
</IfModule>


その他参考:
ELBとHTTPSとリダイレクトループ【cloudpack 大阪 BLOG】 - cloudfishのブログ
http://cloudfish.hatenablog.com/entry/2015/08/30/184458

Chromeで 保護された通信 (緑色) にならない

Apache - サブディレクトリインストールしたWordPressに、SSLサーバー証明書が適用されない(61667)|teratail
https://teratail.com/questions/61667

Chromeでは、https:// と http:// が混在していると「保護された通信」と表示されないようです。
画像の http://~ リンクを Search Regex というプラグインで 検索し https://~ に置換していくと緑色になりました。

0 件のコメント:

コメントを投稿