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]