独自ドメイン

サイトを独自ドメインに移す手順は3つで、この順番に進めます。名前を登録し、正規ドメインを設定し、必要ならほかのホスト名を追加します。各手順で必要なDNSレコードが表示されるので、DNSプロバイダーで公開してください。フラグ、出力、終了コードはすべて kamakiri domain にあります。

3つの役割

名前を登録する

登録は、その名前をアカウントが管理していることの証明です。登録はサイトではなくアカウントに属するので、一度登録すれば、どのサイトにも割り当てられます。

$ kamakiri domain register example.com

Publish this DNS record to prove ownership:
  TYPE  NAME                          VALUE
  TXT   _kamakiri-verify.example.com  kamakiri-verify=mfrggzdfmztwq2lknnwg23tp
  Add this value; keep any other `_kamakiri-verify` value already there.

  Add the TXT record above at your registrar, then come back.
  Safe to close any time (Ctrl-C). Re-run `kamakiri domain register example.com` or `kamakiri domain list` to resume.

✓ domain verified: example.com
Now run `kamakiri domain set example.com` to point a site at it.
$ kamakiri domain register example.com

所有権を証明するため、次のDNSレコードを公開してください:
  種別  名前                          宛先
  TXT   _kamakiri-verify.example.com  kamakiri-verify=mfrggzdfmztwq2lknnwg23tp
  この値を追加してください。既にある他の `_kamakiri-verify` の値はそのまま残してください。

  上記のTXTレコードをレジストラで追加したら、戻ってきてください。
  いつでも閉じて構いません (Ctrl-C)。`kamakiri domain register example.com` または `kamakiri domain list` を再実行すると再開できます。

✓ ドメインを確認しました: example.com
次に `kamakiri domain set example.com` を実行してサイトを割り当ててください。

このTXTレコードでトラフィックが動くことはありません。証明は一度きりです。確認済みの登録は、あとでレコードを削除しても、登録を解除するまで有効なままです。登録から72時間たっても確認されない登録は削除され、もう一度登録すると、公開する新しい値が発行されます。

登録は、その名前と配下のすべてをカバーします。example.com を登録すれば www.example.com も a.b.example.com もカバーされます。foo.example.com を登録した場合にカバーされるのは foo の配下だけです。

正規ドメインを設定する

$ kamakiri domain set example.com
✓ Canonical domain set: example.com

Configure your DNS:
  Required records (pick ONE option):

    Option A: ALIAS or ANAME (if your DNS provider supports it)
      example.com  ALIAS  → fzks-qpb6r87d79wfblfj.c1.kamakiri-pages.site.

    Option B: A records
      example.com  A  → 198.51.100.10
      example.com  A  → 198.51.100.11

    Both options work. ALIAS/ANAME is slightly more convenient (CDN
    changes don't require DNS edits); A records work everywhere,
    including providers that don't support ALIAS/ANAME. If you don't
    know which your provider supports, A records are the safe choice.

  Add the DNS record above at your registrar, then come back.
  Safe to close any time (Ctrl-C). Re-run `kamakiri domain verify example.com` or `kamakiri status` to resume.

✓ domain linked on our side
✓ DNS propagated (~12m)
✓ SSL certificate provisioned (~30s)
✓ live: https://example.com

(note: if your browser shows an error, DNS might not have propagated close to you)
$ kamakiri domain set example.com
✓ 正規ドメインを設定しました: example.com

DNSを設定してください:
  必要なレコード(いずれか1つを選択):

    選択肢A: ALIAS または ANAME(DNSプロバイダーが対応している場合)
      example.com  ALIAS  → fzks-qpb6r87d79wfblfj.c1.kamakiri-pages.site.

    選択肢B: Aレコード
      example.com  A  → 198.51.100.10
      example.com  A  → 198.51.100.11

    どちらの方法でも動作します。ALIAS/ANAME の方が少し便利です(CDNを
    変更してもDNSの編集が不要になります)。Aレコードはどの環境でも動作し、
    ALIAS/ANAME に対応していないDNSプロバイダーでも使えます。どちらに
    対応しているか分からない場合は、Aレコードを選べば確実です。


example.com
  上記のDNSレコードをレジストラで追加したら、戻ってきてください。
  いつでも閉じて構いません (Ctrl-C)。`kamakiri domain verify example.com` または `kamakiri status` を再実行すると再開できます。

✓ ドメインをこちら側でリンクしました
✓ DNSの反映を確認しました(約12分)
✓ SSL証明書を発行しました(約30秒)
✓ 公開中: https://example.com

example.com のような Apex はCNAMEにできないので、ALIAS か ANAME のレコード、または2つのAレコードが示されます。www.example.com のようなサブドメインなら、宛先へのCNAMEが1つだけです。宛先とは、コマンドが表示する kamakiri-pages.site 配下のホストです。

宛先はドメインごとに決まっていて、変わりません。コマンドを再実行しても、あとでホスト名の役割を変えても、DNSを編集し直す必要はありません。

サイトの前段に Cloudflare を置く予定なら、www.example.com を正規ドメインにして、example.com はリダイレクトとして追加してください。Cloudflare は Apex を配信できません。詳しくは CDN を参照してください。

レコードが宛先に解決し、証明書が発行されると、ドメインは公開されます。ほかのホスティングからドメインを移す場合は、たいてい古いレコードのTTLが切れるのを待つことになり、1時間ほど、ときにはそれ以上かかります。また、公開には中身が必要です。サイトに公開中のデプロイがない間は待機中の表示がそのことを伝え、kamakiri deploy <path> を実行すれば自動で完了します。

www、リダイレクト、エイリアスを追加する

$ kamakiri domain add www.example.com
✓ Domain added: www.example.com (redirect 301)

Configure your DNS:
  www.example.com  CNAME  → h1lc-qpb6r87d79wfblfj.c1.kamakiri-pages.site.

  Add the DNS record above at your registrar, then come back.
  Safe to close any time (Ctrl-C). Re-run `kamakiri domain verify www.example.com` or `kamakiri status` to resume.

✓ domain linked on our side
✓ DNS propagated (~12m)
✓ SSL certificate provisioned (~30s)
✓ live: https://www.example.com

(note: if your browser shows an error, DNS might not have propagated close to you)
$ kamakiri domain add www.example.com
✓ ドメインを追加しました: www.example.com (redirect 301)

DNSを設定してください:
  www.example.com  CNAME  → h1lc-qpb6r87d79wfblfj.c1.kamakiri-pages.site.

www.example.com
  上記のDNSレコードをレジストラで追加したら、戻ってきてください。
  いつでも閉じて構いません (Ctrl-C)。`kamakiri domain verify www.example.com` または `kamakiri status` を再実行すると再開できます。

✓ ドメインをこちら側でリンクしました
✓ DNSの反映を確認しました(約12分)
✓ SSL証明書を発行しました(約30秒)
✓ 公開中: https://www.example.com

追加したホスト名は、正規ドメインへ301でリダイレクトします。--status 302 で一時的なリダイレクトになり、--alias でリダイレクトせずに内容を配信します。リダイレクトを追加するには、先に正規ドメインを設定しておく必要があります。www.example.com は example.com の登録でカバーされているので、追加の登録はいりません。

新しいドメインに移る

kamakiri domain register example.jp
kamakiri domain set example.jp
kamakiri domain add example.com

新しい正規ドメインを設定すると、古い正規ドメインはサイトから外れ、追加し直すまで配信されません。リダイレクトとして追加すれば、古いリンクもそのまま使えます。各コマンドが表示するレコードを公開してください。

ドメインを外す

WebAccel のCDNを前段に置いていた場合、そのリソースは kamakiri cdn cleanup で削除するまで、さくらのクラウドのアカウントに残ります。詳しくは CDN を参照してください。Cloudflare のホスト名はドメインと一緒に削除されます。

ドメインが公開されないとき

設定の途中のままにしたドメインも、コマンドが見守っているかどうかにかかわらず、レコードが反映されれば自動で公開されます。ただし、追加から72時間たってもDNSを待っているドメインは、サイトから外されます。同じ set か add をもう一度実行してください。公開するレコードは変わりません。kamakiri status には、直近の確認で各ドメインがどの状態だったかが、次のように表示されます。

kamakiri domain verify <domain> は、1分ほどのうちにドメインをもう一度確認するよう求め、公開されるまで見守ります。配信から外れてしまったドメインを元に戻すときも、このコマンドを使います。