このブログ、最初は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
のキャッシュを削除した