Public Suffix List

Public Suffix List(パブリックサフィックスリスト)についてまとめています。


公式サイト


Public Suffix List とは?

インターネットユーザーが直接登録できる(または歴史的に登録できる)
ドメイン名・サブドメイン名「Public Suffix」(パブリックサフィックス)を
一覧にしたのが「Public Suffix List」です。

例えば .jp ドメインの中で、次のドメインが含まれています。
これらのドメインは、左にサブドメインを付けて公開できる(されている)ドメインです。

  • .jp
  • .co.jp
  • .tokyo.jp
  • .shinjuku.tokyo.jp

レジストリ管理でなくても、不特定多数に開放されているサブドメインは登録できます。
例えば、次が登録されています。いずれも多くの人が登録して使用できます。

  • .a..run.app(Google Cloud Platform・Google Cloud Run)
  • .azurewebsites.net(Microsoft Azure)
  • .appspot.com(Google Cloud Platform・Google App Engine)
  • .eu.org(🎈 EU.org)
  • .firebaseapp.com(Google Firebase)
  • .github.io(🎈 GitHub Pages)
  • .gitlab.io(GitLab Pages)
  • .glitch.me(🎈 Glitch)
  • .herokuapp.com(Heroku)
  • .jp.net(🎈 CentralNic)
  • .now.sh(🎈 Vercel・旧 ZEIT Now)
  • .s3-ap-northeast-1.amazonaws.com(AWS・Amazon S3)
  • .vercel.app(🎈 Vercel)
  • .web.app(Google Firebase)

この Public Suffix List は Mozilla が主導していますが、
コミュニティリソースとして維持されています。(Mozilla からの要求に影響されない)

Web ブラウザを含め、多くのシステムでこの Public Suffix List が採用されています。
balloon.asia 内で紹介しているサービスでは、次のサービスで採用されています。

  • 🎈 CentralNic
    .jp.net などの 2LD を登録、TLD 同等で使用できるようにしています。
  • 🎈 Cloudflare
    サイトの登録で独自ドメインの判別に使用しています。
  • 🎈 EU.org
    .eu.org などを登録、独自ドメインと同等に使用できるようにしています。
  • 🎈 Glitch
    .glitch.me を登録、Let’s Encrypt の使用、
    プロジェクト別の Cookie 分離を実現しています。
  • 🎈 Let’s Encrypt
    レート制限のドメイン別区分として使用しています。
  • 🎈 Vercel
    vercel.app vercel.dev ZEIT Now から従来採用していた now.sh を登録、
    Let’s Encrypt の使用、プロジェクト別の Cookie 分離を実現しています。

一般向けの Web アプリなどを扱う場合に、
Public Suffix List から処理する必要があるでしょう。


データを参照・確認する

次が公式なリストの参照先です。文字コード UTF-8 のテキストファイルです。
直接テキストエディタで参照できますが、サイズが大きい事にご注意下さい。

https://publicsuffix.org/list/public_suffix_list.dat

GitHub で管理されているため、リポジトリから直接参照できます。

https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat

日本語ドメインは「みんな」「東京.jp」など、
Punycode 変換されていない表記になっています。他国語も同様です。


登録・変更方法

誰でも登録できますが、多くのシステムに影響があるので、
登録するためには妥当な説明が必要です。
当然登録されたドメインは期限切れにならないよう、維持する必要があります。\

Guidelines | GitHub publicsuffix/list

GitHub の Pull Request で行います。英語での説明と正確な操作が必要です。

Pull request | GitHub publicsuffix/list

変更も同じですが、リストの変更作業が困難な場合、
Pull Request の代わりに issues で説明しても良いでしょう。

Issues | GitHub publicsuffix/list


Q&A

独自ドメインの選定に使用できますか?

はい。 Public Suffix List の理想的な使用方法です。
一部のサブドメインも含まれますが、独自ドメイン同等に扱えるケースが多いので、
そのまま維持しても大きく問題ないでしょう。

個人で Web サービスを提供していますが、登録できますか?

はい。個人でも妥当な理由があれば登録できます。
EU.org は個人運営ですが、実際に登録されています。

Bug 1155882 - Update PSL to add eu.org domains. r=gerv | GitHub publicsuffix/list
EU.org
🎈 EU.org | ふうせん🎈 Fu-sen.

当然登録されたドメインは期限切れにならないよう維持しなければならず、
サービス停止後の削除申請も登録同様に行う必要があります。

レンタルサーバを運用しています。サブドメインでも使用できるようにしていますが、ドメインを登録できますか?

Web サービスやダイナミック DNS で登録している業者が多いですが、
レンタルサーバ業者が登録しているケースはまだ少ないように見られます。

また、世界的に使用できるサービスでの登録が多く、
日本のサービスで登録を行っているケースは少ないです。

Let’s Encrypt のレート制限を増やすために登録する事はできますか?

Let’s Encrypt 側で レート制限フォーム があり、こちらで解決できるため、
Public Suffix List での登録は拒否されるのが過去の状況です。
これを登録許可すると登録数がかなり増大してしまう、というのもあるようです。

レート制限 | Let’s Encrypt
Let’s Encrypt Rate Limit Adjustment Request Form | Google フォーム
🎈 Let’s Encrypt | ふうせん🎈 Fu-sen.