December 10, 2017

S3とCloudFrontつかってブログをHTTPS化した

このブログ、最初はGitHub Pages & 独自ドメインで作ってたのですが、この組み合わせだとHTTPS化できないらしい。(独自ドメインでなければGitHubの証明書がそのまま使われるのでHTTPSになる) そこで構成を変えてS3にファイルを置いてCloudFrontで証明書を設定した上でS3にアクセスするようにし(証明師はCertificate Manager使った)、Route 53で blog.bomberowl.org で設定したCloudFrontのDistributionにアクセスするようにした。

参考にした記事

  • ほぼこのまま https://blog.majimena.co.jp/tech/2016/03/31/aws-ssl.html
  • ただしサブディレクトリを index.html に解決してほしかったので https://qiita.com/naoiwata/items/3c6626cbeacbb44d4aa8 を参考CloudFrontのdistributionに指定する文字列だけ↑の記事とは変えている
    • S3 bucketではなくS3のStatic Website Hosting用のURLを使うようにした(ウェブサイトホスティング)
    • こうするとCloudFront - S3間がHTTPSじゃなくなったりするけどそんなにシビアじゃないのでまあ許容する
    • Origin Access Identityが使えないのでS3のバケットポリシーをpublicにする必要がある
    • メモ:S3のエンドポイントはバケットを開く→プロパティ→”Static Website Hosting” から見れる
  • https://qiita.com/koseki/items/4462b09f1527ad07bdce

ハマったところ

  • CloudFrontでルートオブジェクトを index.html に指定してないと https://blog.bomberowl.org で開けない(Access Deniedになる)
  • Certificate Managerで作る証明書は us-east-1 (バージニア)じゃないとCloudFrontで使えない(つい東京リージョンで作ってやり直した)
  • hugoの設定ファイル変えたのにページが新しくならない→CloudFrontのキャッシュだった(distributionごとの画面から “Invalidations” を選んで index.html のキャッシュを削除した

© yoshihara 2017-2019

Powered by Hugo & Kiss.