独自ドメインのgithubページをHTTPS化する

以前はホームページを持つのはなかなか難儀な話でしたが、 インターネットサービスの充実した頃日ではホームページを保有するサービスが提供されるのは無料でさえ枚挙に暇が有りません。 中にもITの専門家を中心に近年人気を博しているのが githubページ でしょう。 先日Microsoft社が買収して話題になった github 提供のサービスです。

GitHub上の所謂ホームページ

githubが本来提供するのはバージョン管理のクラウドサービスですが、 基本的にはテキストファイルのプログラムソースのバージョン管理としては、 ホームページを記述するための言語、 HTML でも変わりありません。 するとgithubに預けたオンライン上のhtmlファイルに於いては、 後はWebサーバーだけ宛がってやればブラウザで閲覧可能となり、 立派なホームページの一丁上がり、と言った塩梅です。

無料での提供ではリポジトリが公開必須となりますので、 ソースは誰でも閲覧可能になる、と言う制限付きですが、 基本的にはソースは誰でも見られる静的なホームページでは問題にする迄もないでしょう。 裏技と迄は行きませんが、ローカルリポジトリにCMS的プログラムを以て静的ページを構築し、 其れをgithubリポジトリにpushすれば動的サイトの公開も可能の理屈となります。 勿論、非公開が可能な有料サービスも検討する価値はあるものです。

スポンサーリンク

此のgithubページは独自ドメインでの公開も可能でしたが、 頃日のインターネットサービス、具体的には はてな や本ブログの2018年4月2日の記事、 Google Bloggerが漸く独自ドメインでHTTPS化 にて扱ったGoogleのBloggerやなどに代表される様な例に漏れず HTTPS化が進んでいませんでしたが、 サイト公開と同じく簡単にHTTPS化が可能となるアナウンスのあり、 早速、試行してみました。

1 Click 設定

設定は本当に簡単でワンクリックだけです。 githubページをのリポジトリ管理画面にログインして Settings 画面の GitHub Pages の項目の最下部を見れば Enforce HTTPS なる項目名のチェックボックスが用意されている筈ですが、 此れにチェックを入れるだけでHTTP化は完了です。

処で此のチェックボックスがクリック不能な場合もあります。 其れは独自ドメインのgithubページを公開している場合、 DNS設定にAレコードを追加していると思います。 此れが以前に提供されていたIPアドレスだとHTTPS化が不能となるようです。

  • 192.30.252.153
  • 192.30.252.154

多くのgithubページを公開するノウハウが共有される情報ページでは 大抵が此のIPアドレスを記載しているようです。 此れは以前のgithub公式のヘルプページに記載されていたIPアドレスですが、 最新のヘルプページでは以下の様にIPアドレスが変更されています。

  • 185.199.108.153
  • 185.199.109.153
  • 185.199.110.153
  • 185.199.111.153

勿論、此の情報は公式のヘルプページに現在記載されているものです。

Setting up an apex domain - User Documentation

但し、HTTP化には此のIPアドレスを用いるように、との但し書きは見当たりませんので、 気づき難い部分もあるかと思います。 実は、前述の Enforce HTTPS チェックボックスの傍らにリンクが貼られており、 其れを辿る先に用意されてヘルプページには明確に其れが記載されています。 先ずは傍らの説明文を引用し、次にリンクを貼り置きましょう。

— Unavailable for your site because your domain is not properly configured to support HTTPS (your.domain.name)
— Troubleshooting custom domains

Troubleshooting custom domains - User Documentation

リンクの先の当該部分には上のIPアドレスが列挙され、 以下、引用の様に説明されています。

Custom domains configured with A records
If you configured your custom domain using an A record, your A record must point to one of the following IP addresses for HTTPS to work:

HTTPS化事前準備

実は自らのgithubページもIPアドレスは以前の 192.30 で始まる2つのものを利用していたため、 最初はチェックボックスがクリック不能でした。 しかし、此の情報を仕入れて早速 DNS設定を 185.199 で始まる4つのものに書き換えた処、以下のようにチェックボックス項目の傍らの説明文が変わりました。

Enforce HTTPS — Not yet available for your site because the certificate has not finished being issued.
Please allow 24 hours for this process to complete. (your.domain.name)
HTTPS provides a layer of encryption that prevents others from snooping on or tampering with traffic to your site.
When HTTPS is enforced, your site will only be served over HTTPS. Learn more.

この時点では未だチェック不能です。 未認証であるので24時間待て、と記されてありますので、取り敢えず余所事を熟して待ちます。 しかし、このような注意書きには有り勝ちですが、 24時間など待たずとも結果は反映される場合も多々経験しています。 余所事は凡そ一時間程でケリが付きましたから githubに再ログインして当該チェックボックス回りを見回すと、 傍らの説明文から HTTPS provides a layer より前の部分がごっそり抜け落ちています。 ご想像通り、此の時点でチェックボックスのクリックが可能となっていました。

HTTPS化完了

クリッカブルとなったgithubページのHTTPS化の為のチェックボックスのチェックが有効となった図
クリッカブルとなったgithubページのHTTPS化の為のチェックボックスのチェックが有効となった図

早速クリックして、 オンラインでgithubページを確認すると確かにHTTPS化が完了していました。 以前から、githubの用意する証明書とは別に用意するなどすれば、 独自ドメインでのHTTPS運用も可能でしたが、 些か敷居が高いのも正直な処でした。 DNS設定も自ら契約のレジストラ等のドメイン事業者での管理画面で設定すれば良く、 github側の設定もチェックボックスをワンクリックするだけ、 と至極簡単になっています。 世の中、益々、セキュリティ的に厳しさを増しますので、 githubページを運営されながら未HTTP化の向きは、 実践しておいた方が宜しかろうとお薦めするものです。

追記(2018年7月19日)

本記事の続編となる HTTPS化したGitHubページのドメイン設定に於けるCNAME運用をCloudFlareで実施する を配信しました。