結論
Cloudflare の DNS ではてなブログの独自ドメイン用に CNAME レコードを登録しているときは、そのレコードの Status を DNS and HTTP Proxy (CDN)
(オレンジ雲アイコン)から DNS Only
(グレー雲アイコン)に変更しましょう。雲をクリックすると変更できます。
問題
Cloudflare の DNS で、自分で持っているドメイン example.com
(例です)の A レコードを登録していました。このとき、はてなブログの独自ドメイン blog.example.com
を設定するために、このドメインのサブドメイン blog.example.com
を hatenablog.com
のエイリアスとする CNAME レコードを作りました。しかし、はてなブログの管理画面で「ドメイン設定をチェック」をクリックしても エラー レコードが見つかりませんでした
と表示されて、独自ドメインが設定できませんでした。
解決方法と理由
最初に「結論」で述べたとおりの方法で解決します。
DNS and HTTP Proxy (CDN)
(オレンジ雲アイコン)のときは通信が Cloudflare を経由しているのですが、このときに該当のドメインを解決すると、CNAME ではなく、Cloudflare のサーバに向いている A レコードになってしまっていたのでした(ドメイン名は例に置き換えています)。
$ dig blog.example.com
; <<>> DiG 9.8.3-P1 <<>> blog.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15144
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;blog.example.com. IN A
;; ANSWER SECTION:
blog.example.com. 300 IN A 104.28.16.93
blog.example.com. 300 IN A 104.28.17.93
;; Query time: 92 msec
;; SERVER: 192.168.10.1#53(192.168.10.1)
;; WHEN: Sat Apr 15 14:33:51 2017
;; MSG SIZE rcvd: 64
DNS Only
(グレー雲アイコン)に変更すると、Cloudflare をバイパスし DNS だけ使うようになるので、ドメイン解決の結果、該当の DNS レコードが期待どおり CNAME になっていることがわかります。
$ dig blog.example.com
; <<>> DiG 9.8.3-P1 <<>> blog.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49533
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;blog.example.com. IN A
;; ANSWER SECTION:
blog.example.com. 300 IN CNAME hatenablog.com.
hatenablog.com. 6 IN A 52.197.171.58
;; Query time: 92 msec
;; SERVER: 192.168.10.1#53(192.168.10.1)
;; WHEN: Sat Apr 15 14:45:37 2017
;; MSG SIZE rcvd: 73
これで、はてなブログがこのサブドメインを認識できるようになります。