SSL
独自ドメイン
github-pages
HTTPS
letsencrypt

GitHub Pages + 独自ドメイン + HTTPS (SSL) のサポートをGitHubが提供開始

前提

GitHub Pagesでお手軽にHTTPSを利用したい

はじめに

GitHub PagesではSSLサーバ証明書の設定ができません。
そのため、GIthub Pages + 独自ドメインでHTTPS (SSL) に対応するには、
CDNでリバースプロキシを利用するといった方法をとられている方が多いと思います。

GitHubのHTTPSサポートの動向

GitHubが独自ドメイン用の証明書を発行するようになった

2018年2月中旬ごろ、Github Pages側でLet's EncryptのSSLサーバ証明書が
自動で発行されるようになり、リバースプロキシの設定をする必要がなくなりました。

GitHub PagesがHTTPSを公式にサポート開始

2018年2月中旬から4月下旬まで、独自ドメインのHTTPSサポートを非公式に提供するにとどまっていましたが、2018/05/01にGitHub Pagesが公式に独自ドメインでHTTPSをサポートすることを発表しました。

GitHub Pagesにおける独自ドメインとHTTPSの利用設定

独自サブドメインの利用設定

利用する独自ドメインがサブドメイン (例: www.example.com) の場合、DNSのCNAMEレコードを設定します。

  1. GitHub Pagesを利用するGithubレポジトリのメインページへ移動
  2. Settingをクリック
  3. Custom domainのテキストボックスに利用するサブドメインを入力しSaveをクリック image.png
  4. 利用するサブドメインが記載されたCNAMEというファイルがレポジトリに自動で追加される

  5. 対象のサブドメインに対する元のドメインとして YOUR-DOMAIN.github.io (YOUR-DOMAINは置き換え) を指定する。YOUR-DOMAINに指定する内容はCustom domainの設定のテキストボックスの上の説明文中で確認できる (上記画像参照)

独自メインドメインの利用設定

独自サブドメインのみをGitHub Pagesで利用する場合、この設定はしないでください。

利用する独自ドメインがメインドメイン (例:example.com) の場合、Aレコードを設定します。
対象のメインドメインに対するIPアドレスとして以下の4つを指定します。

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

HTTPSの利用設定

  1. GitHub Pagesを利用するGithubレポジトリのメインページへ移動
  2. Settingをクリック
  3. Enforce HTTPSにチェック

github-pages_hsts.jpg

Enforce HTTPSにチェックできない場合

@aikawameさん 情報提供ありがとうございます)
「Enforce HTTPS」の設定で以下のようなメッセージが表示されている場合、HTTPSを設定ができません。
2018年4月末現在、全リポジトリでHTTPSが利用可能にはなってはおらず、順次展開されているようです。

Unavailable for your site because you have a custom domain configured (example.com)