はじめに
環境移行のタイミングだったりで、ドメインや通信周りの設定を変更することがありました。 今回対応したシステムは過去にはHTTP通信も許可していたようで、実際未だにちらほらそういったアクセスがあり、 この移行のタイミングでこれらをHTTPSでリダイレクトさせるようにしました。
設定内容
ApacheのRewriteを利用してHTTPできたアクセスをHTTPSにリダイレクトさせました。
# http -> https rewrite
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Port} !^443$
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker
RewriteRule ^(.*)?$ https://%{HTTP_HOST}$1 [R=301,NE,L]
注意点としては、ELBで証明書をほどいているシステムが多いかと思いますが、ELBに80で来ているのか443で来ているのかを見る必要があります。
またELBからのヘルスチェックはリダイレクトされても困るので対象から外しました。
あとこれは要件によって変わるかもしれませんが、パラメータがエンコードされると困るので
NEオプションを付けました。
酒井 修平