独自ドメイン
サイトを独自ドメインに移す手順は3つで、この順番に進めます。名前を登録し、正規ドメインを設定し、必要ならほかのホスト名を追加します。各手順で必要なDNSレコードが表示されるので、DNSプロバイダーで公開してください。フラグ、出力、終了コードはすべて kamakiri domain にあります。
3つの役割
- 正規ドメイン。 サイトの主たるアドレスで、1サイトに1つです。そのDNSがサイトに向くと、サイトの
kamakiri-pages.jpのアドレスは、有効である間、ここへ301でリダイレクトします。 - リダイレクト。 正規ドメインへリダイレクトします。別のコードを選ばない限り301です。
- エイリアス。 別のホスト名で同じ内容を配信します。リダイレクトはしません。
名前を登録する
登録は、その名前をアカウントが管理していることの証明です。登録はサイトではなくアカウントに属するので、一度登録すれば、どのサイトにも割り当てられます。
$ 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
新しい正規ドメインを設定すると、古い正規ドメインはサイトから外れ、追加し直すまで配信されません。リダイレクトとして追加すれば、古いリンクもそのまま使えます。各コマンドが表示するレコードを公開してください。
ドメインを外す
kamakiri domain remove <domain>リダイレクトまたはエイリアスを外します。kamakiri domain unset正規ドメインを外し、サイトはkamakiri-pages.jpのアドレスでの配信に戻ります。リダイレクトが残っている間は拒否されるので、先にそれを外してください。kamakiri domain unregister <domain>登録を解除します。その配下のホスト名をご自身のサイトがまだ使っている間は拒否されます。解除したあとは、_kamakiri-verifyのレコードも消して構いません。
WebAccel のCDNを前段に置いていた場合、そのリソースは kamakiri cdn cleanup で削除するまで、さくらのクラウドのアカウントに残ります。詳しくは CDN を参照してください。Cloudflare のホスト名はドメインと一緒に削除されます。
ドメインが公開されないとき
設定の途中のままにしたドメインも、コマンドが見守っているかどうかにかかわらず、レコードが反映されれば自動で公開されます。ただし、追加から72時間たってもDNSを待っているドメインは、サイトから外されます。同じ set か add をもう一度実行してください。公開するレコードは変わりません。kamakiri status には、直近の確認で各ドメインがどの状態だったかが、次のように表示されます。
- DNSを待機中。 一致するレコードがまだ見えていません。公開されていないか、まだ反映されていません。
- DNSが別の宛先を指しています。 レコードはありますが、一致していません。期待した値、実際の値、考えられる対処が表示されます。よくある原因は、そのレコードで Cloudflare のプロキシが有効なままになっていることです。
- DNSに到達できませんでした。 直近の確認ではDNSに到達できなかったため、結果が分かりません。確認は自動で続きます。
- まだ公開されたコンテンツがありません。 DNSはすでにサイトに向いていますが、サイトに公開中のデプロイがありません。kamakiri deploy で一度デプロイすれば、設定は自動で完了します。
- エッジを確認中、SSL証明書を準備中。 レコードは正しく、設定の仕上げ中です。対応は不要です。
- 公開中。 レコードが宛先に解決し、ドメインがHTTPSで配信されています。
kamakiri domain verify <domain> は、1分ほどのうちにドメインをもう一度確認するよう求め、公開されるまで見守ります。配信から外れてしまったドメインを元に戻すときも、このコマンドを使います。