GitHub Pagesでブログを公開していると、sonohen.github.ioのようなデフォルトのドメインではなく、独自ドメインでアクセスしたくなる。今回、ムームードメインで取得したドメインをGitHub Pagesに設定したので、その手順と遭遇したトラブルについてまとめる。
全体の流れ
独自ドメインの設定は、大きく以下の5つのステップで行う。
- ムームードメインでのネームサーバ設定
- GitHub側でのドメイン認証
- CNAMEファイルの作成
- GitHub側でのDNS設定チェック
- HTTPS通信の強制
順番に説明していく。
ムームードメインでのネームサーバ設定
GitHub公式ドキュメントを参考に、ムームーDNSで以下のレコードを設定する。
| サブドメイン | 種別 | 内容 |
|---|---|---|
| - | A | 185.199.108.153 |
| - | A | 185.199.109.153 |
| - | A | 185.199.110.153 |
| - | A | 185.199.111.153 |
| www | CNAME | sonohen.github.io |
Aレコード4つはApexドメイン(sonohen.net)をGitHub PagesのIPアドレスに向けるためのもので、CNAMEレコードはwwwサブドメインをGitHub Pagesに向けるためのものである。
確認方法
% dig www.sonohen.net
; <<>> DiG 9.10.6 <<>> sonohen.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46977
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;sonohen.net. IN A
;; ANSWER SECTION:
sonohen.net. 3367 IN A 185.199.109.153
sonohen.net. 3367 IN A 185.199.111.153
sonohen.net. 3367 IN A 185.199.108.153
sonohen.net. 3367 IN A 185.199.110.153
;; Query time: 19 msec
;; SERVER: 2400:4051:4682:c200:32be:3bff:fe4d:9964#53(2400:4051:4682:c200:32be:3bff:fe4d:9964)
;; WHEN: Sat Feb 07 22:47:33 JST 2026
;; MSG SIZE rcvd: 104
GitHub側でのドメイン認証
GitHub > Profile > Code, planning and automation > Pages > Add a domainから、ドメインの認証を行う。指定されたTXTレコードをムームーDNSに登録し、認証を通す。
この認証が行われないと、後続のDNSレコードチェックが失敗するため、必ず先に済ませておく。
CNAMEファイルの作成
GitHub Pagesが独自ドメインを認識するために、CNAMEファイルをリポジトリに配置する必要がある。
www.sonohen.net
Hugoでstackテーマを使っている場合は、themes/stack/static/CNAMEに配置する。こうすることで、ビルド時に公開ディレクトリのルートにCNAMEファイルが生成される。
GitHub側でのDNS設定チェック
リポジトリ > Settings > Code and automation > Pages > Custom domainに独自ドメインを入力すると、GitHubがDNS設定をチェックしてくれる。
このチェックが通るためには、事前に以下の3つが完了している必要がある。
- ネームサーバにA、TXT、CNAMEレコードが追加されていること
- CNAMEファイルが公開され、外部からアクセス可能であること
- GitHubでドメイン認証が完了していること
HTTPS通信の強制
リポジトリ > Settings > Code and automation > Pages > Enforce HTTPSにチェックを入れることで、HTTP通信が無効になり、HTTPS通信が強制される。
ハマったポイント
設定自体はシンプルだが、2つのトラブルに遭遇した。
ドメイン認証が通らない
ムームーDNSでTXTレコードを作成する際、ホスト名に_github-pages-challenge-sonohen.sonohen.netと入力していた。しかし、ムームーDNSでは.sonohen.netが自動的に付与されるため、実際に作成されたホスト名は_github-pages-challenge-sonohen.sonohen.net.sonohen.netになっていた。
ホスト名を_github-pages-challenge-sonohenに修正することで解決した。
確認方法
% dig _github-pages-challenge-sonohen.sonohen.net +nostats +nocomments +nocmd TXT
; <<>> DiG 9.10.6 <<>> _github-pages-challenge-sonohen.sonohen.net +nostats +nocomments +nocmd TXT
;; global options: +cmd
;_github-pages-challenge-sonohen.sonohen.net. IN TXT
_github-pages-challenge-sonohen.sonohen.net. 3541 IN TXT "ひみつ(でもないが)"
DNSチェックが通らない
Custom domainの認証が通らなかった原因は、GitHubがhttp://www.sonohen.net/CNAMEにアクセスできなかったためだった。
CNAMEファイルにはwww.sonohen.netを記載しておく必要があり、かつ外部からアクセス可能でなければならない。また、DNSチェックが通っていない時点ではHTTPS通信ができないため、HTTPでアクセスされる点にも注意が必要である。
対処として、以下の手順を踏んだ。
- CNAMEファイルを作成し、
static/CNAMEに配置 - サイトをリビルド
http://www.sonohen.net/CNAMEにアクセスできることを確認
まとめ
GitHub Pagesへの独自ドメイン設定は、DNS設定・ドメイン認証・CNAMEファイル配置・DNSチェック・HTTPS強制の5ステップで完了する。特にムームーDNSでは、ホスト名にドメインが自動付与される仕様に注意が必要だった。