概要
静的Webサイトを用意して、HTTPSでアクセスできるようCloudFrontを前に用意したのですがそこでハマったことをまとめます。
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
問題
SSL証明書を設定したのにERR_SSL_VERSION_OR_CIPHER_MISMATCH
というエラーがでてページが見れませんでした。
- CloudFrontの設定でSSL証明書を指定
- Route53でCloudFrontにCNAMEを設定
としたのにうまく行きません。
解決方法
実はCloudFront側でCNAMEの設定を入れる必要がありました。
XMLで表示される
問題
SSLの問題が解決できたので意気揚々と
にアクセスしたところ、index.htmlのページは表示されずS3のバケット一覧がXMLで表示されました。
解決方法
CloudFrontの設定でDefault Root Object
に読ませたいオブジェクトを指定します。
※ただしこれはS3バケット指定だから起きるエラーで、次のようにstatic websiteでインデックスドキュメントを指定するとDefault Root Objectを指定しなくても大丈夫です。
ルート以外のURLパスで403エラー
問題
にはアクセスできるのですが、
だと403エラーが出てしまいました。
解決方法
CloudFrontのOriginに、S3のバケットではなくstatic websiteのエンドポイントを指定することで解決できます。
S3側でエンドポイントを取得し、
CFのオリジンに指定します。
ただし、注意としてよくあるCloudFrontだけアクセスできるバケットポリシーみたいな設定はできません。
全オブジェクトに読み取り許可をする必要があります。