これまで、bobuhiro11.netblog.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レコードは削除しておく

設定情報の確認

しばらく待ってから、設定が正しく入っているかを確認

$ (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