事象
Amazon S3 にホストされている静的ウェブサイトをHTTPSで表示するためにAWS CloudFront を使用しています。HTTPサイトとHTTPSサイトが共存すると訪問者にとってわかりにくくなるため、HTTPにアクセスするとHTTPSにリダイレクトするように設定したいと思い、CloudFront コンソールの「ビューワー」の「ビューワープロトコルポリシー」を「Redirect HTTP to HTTPS」に設定しました。
http://s3.ap-northeast-1.amazonaws.com/example.com/index.htmlにアクセスしても、https://s3.ap-northeast-1.amazonaws.com/example.com/index.htmlにリダイレクトされる想定でしたが、リダイレクトされません。。ハマったのでメモしておきます。
原因
Amazon S3のパス形式のURLにてS3バケットにアクセスしていたため。S3のパスに直接アクセスしてしまっていただけでした。。あほみたいな話です。。
解消方法
↓S3のパス形式
https://s3.region-code.amazonaws.com/bucket-name/key-name
↓CloudFrontのパス形式
https://d111111abcdef8.cloudfront.net/index.html
CloudFrontのパス形式のhttpにアクセスしたら、問題なくhttpsにリダイレクトできました。
コメント