Github PagesにwwwをつけたカスタムドメインにHTTPSでアクセスできない
現在、このエントリを含む雑記ブログはGitHub Pagesで公開しており、カスタムドメインとしてnotebook.komorebi-sakuramochi.comを設定している。
具体的には、リポジトリの設定の「Pages > Custom Domain」にこのドメインを設定した上で、
mushitoriami.github.io(mushitoriamiは私のGitHubアカウントのユーザ名)を指すように、CNAMEレコードを設定している。
さらに、www.を先頭に付け加えたドメイン(www.notebook.komorebi-sakuramochi.com)も同様のCNAMEレコードを設定している。
この構成は、GitHubが公式で推奨しており(GitHub公式ドキュメント参照)、
こうすることで、 www.notebook.komorebi-sakuramochi.comからnotebook.komorebi-sakuramochi.comへのリダイレクトを自動で行ってくれるとのこと。
また、GitHub PagesはHTTPSに対応しており、https://notebook.komorebi-sakuramochi.comにアクセスすることができる。
アクセスするだけなら特に設定は必要ないが、カスタムドメインの設定の直後の”Enforce HTTPS”というチェックボックスをONにすることにより、
http://notebook.komorebi-sakuramochi.comからhttps://notebook.komorebi-sakuramochi.comへのリダイレクトを行うこともできる。
そして、以上の仕様から自然に推論すると、www.notebook.komorebi-sakuramochi.comに対しても同様のことが期待される。
しかし、それは正しくないようだ。つまり、https://www.notebook.komorebi-sakuramochi.comにアクセスすることができず、
SSL証明書に関するエラーが発生する。
これは、以前から知られている問題のようで、これについて議論している非公式フォーラムのIssueを見つけることができた。 これによると、2021年の変更によって解決したとされており、それによってIssueはCloseとなっている。 しかし、私のケースでは解決していない。
この2021年の変更には、以下のような記述がある。
When configuring a custom domain for your GitHub Pages site, we will now automatically request a certificate for both the Apex and www subdomain of that custom domain if DNS is configured appropriately.
これは、以下のように解釈できる:
「以上のような構成(wwwあり/wwwなしのカスタムドメインを両方とも*.github.ioに向ける構成)とすることで、wwwあり/wwwなしの両方にHTTPSでアクセスできる。ただしwwwなしのドメインがApexドメインである場合に限る」
つまり、example.comとwww.example.comであれば動作する(example.comをカスタムドメインとして設定すればwww.example.comにHTTPSでアクセスできる)が、
sub.example.comとwww.sub.example.comだと動作しない、ということであり、
今回のようにnotebook.komorebi-sakuramochi.comとwww.notebook.komorebi-sakuramochi.comの2つをリダイレクトによって結ぶような構成は、
GitHubが推奨している構成にもかかわらず、HTTPSに対応することができない、ということになる。
解決策としては、以下の2つが考えられる。
- GitHubが推奨している構成を採用しない
www.を付け加えたドメインの設定をしない、という方法- 設定画面においてかなり強い警告が出るが、一応動作する
- ドメインを変更する
- サブドメインではなく、Apexドメインをカスタムドメインとして使用する、という方法
(2026-02-19: 追記)
私のwebサイトでは、前者の方法で解決することにした。そのため現在では、www.notebook.komorebi-sakuramochi.comはどこにも向けられておらず、
https://www.notebook.komorebi-sakuramochi.comへのアクセスは「サーバが見つかりません」というエラーとなる。