Blufflog

This blog is bluff

カスタムドメインのGitHub PagesにHTTPSを適用する

5月1日から、GitHub PagesでカスタムドメインでもHTTPSが適用されるようになった 1
証明書はお馴染みLet's Encrypt。

自分の場合、カスタムドメインGitHub Pagesサイトを持っている。今回の機能追加で自分のサイトもHTTPSになるかなー、と思って待っていたがHTTPSにならなかったので、そのときの解決法を記しておく。
結論から言うと、次のページの通りにやればOK。

Custom domains on GitHub Pages gain support for HTTPS

GitHub Pagesをカスタムドメインで運用している場合、そのドメインの権威サーバで、CNAME・ALIAS・Aレコードのいずれかを使って、GitHub Pages側のIPアドレスに紐付けているはず。これからカスタムドメインを適用しようという人はこの辺を見て設定してください。

CNAME または ALIAS レコードを使っている場合

多分何もしなくてOK!そのままHTTPSが使えるはず。
万一ダメだったら、GitHub該当repositoryの Settings/GitHub Pages/Custom domain で、一旦カスタムドメインを削除しSave(フォームを空欄にしてSave)。その後、再度カスタムドメインを追加しSave。これで上手くいく気がする(多分この操作は不要。未検証)。

A レコードを使っている場合

自分の場合はこちら。HTTPS対応に伴い、GitHub PagesのIPアドレスが変わっていた模様。このページに書かれているように、Aレコードで以下のIPアドレスを指定する。

  • 185.199.108.153
  • 185.199.109.153
  • 185.199.110.153
  • 185.199.111.153

その後、GitHubの該当repositoryでCNAMEを再設定する。具体的には、該当repositoryの Settings/GitHub Pages/Custom domain で、一旦カスタムドメインを削除しSave(フォームを空欄にしてSave)。その後、再度カスタムドメインを追加しSave。自分の場合、この操作が必要なことに気付かず、なかなかHTTPSにならなかった。
公式が書いていた理由は以下の通り。

Add your custom domain to your GitHub Pages site. If you're updating the IP address of an existing A record, first remove and then re-add your custom domain to the repository you’re using to publish your Pages site to trigger the process of enabling HTTPS. For more information, see "Adding or removing a custom domain for your GitHub Pages site."

P.S.

  • HTTPS対応に伴い、CDNも導入したため高速化したとのこと。digったところ、Fastlyを使っているっぽい
  • ちなみにこの機能、正式リリース前から少しずつ対応していた模様? 2