AWS ELB配下でWordpressを動かす際のSSL対応
投稿日:
■環境
AWS ELB
AWS EC2
Apache 2.2.32
Wordpress 4.1.1
EC-CUBEではありませんが、内容的にはほぼ以下の伊賀もの様の記事通りです。
続カッコの付け方
WordpressでもリクエストURLを見ており、httpsでアクセスした場合のみhttpsでCSSを取得するようになっているのですが
AWS ELBがポートを80に変えてしまうため以下の事象が起こります。
① ChromeでHTTPSのWordpressページを開く
② WordpressがCSSなどはHTTPで取得するよう返す
③ Chrome様が『HTTPSのページのリソースはHTTPSで取得せぇや!』と怒る
※ELB周りの話はこちらでも書いてます
AWS ELB配下でApacheのRewriteRuleが上手く動かなかった話
対応方法上記記事同様に、Wordpress(Ver4.1.1時点)でも $_SERVER[‘HTTPS’]
を見ているので、
Apacheの設定(.htaccessでも可)で書き換えてしまえば解決です。
# ELBがhttpsで受けている場合はHTTPSを有効にする
SetEnvIf X-Forwarded-Proto ^https$ HTTPS=on
# httpアクセスはhttpsにリダイレクトする(設定するかは任意)
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]