これまで、bobuhiro11.net と blog.bobuhiro11.net は、 自分で管理するサーバから配信していた。 ただ、どちらも静的サイトなので、必ずしも自分でインフラを管理する必要はなく、 楽をするために、これからはGithub Pagesを使って配信することにした。 調べてみたところ、Github Pagesでは、独自ドメインは利用できるが、HTTPSで配信することができない。 そこで、Github Pagesの前段に、SSL終端のできるCDNを配置した。 SSL終端のできるCDNは、いくつかあるようだが、 今回は無料で利用できるCloudflareを選択した。 Cloudflareには、DNSの機能もあるので、 お名前.comで登録している bobuhiro11.net とそのサブドメインを Cloudflareへ移行した。 まとめると、以下のようになる。
- お名前.com:ドメインのレジストリ
- Cloudflare:DNSとCDN(SSL終端)
- Github Pages:静的サイトのビルドとHTTP配信
Githubの設定
- 2つのPrivateリポジトリを作成して、jekyllのコードをpush
- リポジトリの公開範囲がprivateであっても、gh-pagesブランチの内容は自動的に公開
- リポジトリ直下に、ドメイン名を記述したCNAMEを配置
- SettingsタブのGithub Pagesで確認
- jekyllコードは自動でビルド
Cloudflareの設定
ふつうzone apexにCNAMEレコードはマッピングできないが、 Cloudflareでは、CNAME Flatteningによって、例外的に割り当てることができる。 Aレコードよりも管理が楽なので、zone apexにもCNAMEを割り当てた。 適当にアカウントを登録して、設定を入れていく。 CloudflareとGithub Pagesの間では、sslを利用できないので、CryptoタブのSSL設定はFlexibleとした。 また、ブラウザにhttps接続を強制するために、HSTS(HTTP Strict Transport Security)の設定をする。
- DNSタブ
- Type:CNAME, Name:blog, Value:bobuhiro11.github.io, TTL: Automatic, Status: DNS and HTTP proxy(CDN)
- Type:CNAME, Name:bobuhiro11.net, Value:bobuhiro11.github.io, TTL: Automatic, Status: DNS and HTTP proxy(CDN)
- Type:MX, Name:bobuhiro11.net, Value:xxxx, TTL: Automatic
- Type:TXT, Name:bobuhiro11.net, Value:xxxx, TTL: Automatic
- NSを2つ割り当ててくれるので、メモしておく(お名前.comの設定で使う)
- Cryptoタブ
- SSL: Flexible
- Always use HTTPS: On
- HSTS: Status: On, Max-Age: 6 months ,Include subdomains: On ,Preload: On ,No-sniff: On
- Automatic HTTPS Rewrites: On
お名前.comの設定
- DNSサーバを、Cloudflareのところでメモした
*.ns.cloudflare.com
に変更する - お名前.comが管理しているDNSサーバ
*.dnsv.jp
のDNSレコードは削除しておく
設定情報の確認
しばらく待ってから、設定が正しく入っているかを確認
- ssllabsの結果、すべてA+であることを確認
- digで正しく名前解決できていることを確認
- DNSは
*.cloudflare.com
- Aレコードが、自分のサーバやGithub PagesのIPアドレス出ないことを確認
- 同時に、mxやtxtレコードも見ておく
- DNSは
$ (dig bobuhiro11.net A @8.8.4.4; dig blog.bobuhiro11.net A @8.8.4.4; dig bobuhiro11.net NS @8.8.4.4; dig bobuhiro11.net SOA @8.8.4.4;) | grep IN | grep -v "^;"
bobuhiro11.net. 299 IN A 104.27.171.197
bobuhiro11.net. 299 IN A 104.27.170.197
blog.bobuhiro11.net. 299 IN A 104.27.171.197
blog.bobuhiro11.net. 299 IN A 104.27.170.197
bobuhiro11.net. 86399 IN NS mark.ns.cloudflare.com.
bobuhiro11.net. 86399 IN NS sima.ns.cloudflare.com.
bobuhiro11.net. 3599 IN SOA mark.ns.cloudflare.com. dns.cloudflare.com. 2025896629 10000 2400 604800 3600