[Server & Network General] トップレベルドメインに .dev や .local は使ってはいけない
サンプルコード等でよく見る `foo.dev` や `hoge.local` といったドメイン名を利用してはいけないという話。
結論としては `dev.d-wood.com` のような「保有ドメイン + サブドメイン」を利用しましょう。
少し前に調べた内容をまとめておく。
## きっかけ
ローカルの開発サーバに .dev を付けた名前を利用していたが、HTTPS 関連のエラーが Chrome で発生して接続できなくなった。
## 原因
`.dev` が HSTS プレロードリストに登録された。
> * [Google運営のTLD、HSTSに追加 まずは「.foo」「.dev」が対象 – ITmedia エンタープライズ](http://www.itmedia.co.jp/enterprise/articles/1709/28/news053.html)
まさに下記が発生した。
> HSTSプレロードリストに登録されたドメインは、たとえユーザーがセキュアでないHTTPのURLを入力した場合でも、ブラウザで強制的に安全なHTTPS接続に自動変換してリクエストが送信される。HSTSはGoogleのChromeのほか、Firefox、Safari、Internet Explorer(IE)、Edge、Operaを含む主要ブラウザに組み込まれている。
>
> [Google運営のTLD、HSTSに追加 まずは「.foo」「.dev」が対象 – ITmedia エンタープライズ](http://www.itmedia.co.jp/enterprise/articles/1709/28/news053.html)
## 調査
`.dev` は Google の持ち物。`.foo` や `.app` なども持っている。
> * [トップレベルドメイン一覧 – Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%83%E3%83%97%E3%83%AC%E3%83%99%E3%83%AB%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E4%B8%80%E8%A6%A7)
`.local` は利用できるのかと思い調べたら、これもまずかった。
Active Directory で深刻な問題が発生するので使ってくれるなとのこと。
> * [Mac が参加するADのドメイン名で .local を使わないでください。](https://www.picturecode.co.jp/faq/dot-local-domain/)
`.test` はローカルで使用可能なリザーブされているトップレベルドメインのひとつだが、用途は決められているとのこと。
> * [予約済みドメイン (.example, .localhost, .test) について | blog.jxck.io](https://blog.jxck.io/entries/2017-09-27/example-local-test-domains.html)
> * [RFC 6761 – Special-Use Domain Names](https://tools.ietf.org/html/rfc6761)
> * [RFC 2606 – Reserved Top Level DNS Names](https://tools.ietf.org/html/rfc2606)