もらえるURLと、自分のURL
Vercelにプロジェクトを作ると〇〇.vercel.appというURLがもらえます。これで人に見せられるので、急ぐ話ではありません。
それでも自分の名前のURLにしたくなる場面はあります。名刺に書く、検索から来てほしい、サービス名で覚えてほしい——このあたりです。ここは困りごとというより、やりたいこと側の話になります。
ドメインを取得する
すでに持っているものが使えます。持っていない場合は、公式ドキュメントにこう書かれています。
If you don’t own a domain yet, you can purchase it with Vercel.
(まだドメインを持っていない場合は、Vercelで購入できます)
Vercelで買うと設定がほぼ自動で済みます。他所(お名前.comやCloudflareなど)で買ったものでも問題なく使えますが、そのぶんDNSの設定を自分で入力することになります。
つなぐ手順
プロジェクトの Settings → Domains → Add Domain で、使いたいドメインを打ち込みます。
example.comのようなapexドメイン(サブドメインの付かない、いちばん短い形)を入力すると、Vercelはwww付きも足すよう促してきます。公式がwww側を勧めているためで、両方登録しておけば、どちらで来た人も片方に寄せられます。
AレコードかCNAMEか
登録すると、次はドメインを買った側(レジストラ)でDNSの設定をします。公式の案内は、形によって分かれます。
If you’re using an Apex domain (e.g. example.com), you will need to configure it with an A record
(apexドメインを使う場合は、Aレコードで設定する必要があります)
If you’re using a Subdomain (e.g. docs.example.com), you will need to configure it with a CNAME record
(サブドメインを使う場合は、CNAMEレコードで設定する必要があります)
ネットの解説に載っている値を、そのまま打たない
ここが引っかかりどころです。設定する値は、Vercelの画面に表示されたものを使います。
公式ドキュメントには、CNAMEについてこう書かれています。
Each project has a unique CNAME record e.g.
d1d4fc829fe7bc7c.vercel-dns-017.com.(プロジェクトごとに固有のCNAMEレコードがあります。例:
d1d4fc829fe7bc7c.vercel-dns-017.com)
プロジェクトごとに違うと明記されています。検索で見つかった記事の値をそのまま写すと、他人のプロジェクトを指すか、単に通らないかのどちらかです。
AレコードのIPアドレスも同じです。76.76.21.21という数字を見かけることがありますが、これはDNSの解説ページでDNSレコードというものの例として挙がっているだけで、「これを設定しなさい」という指示ではありません。画面に表示された値を写すのが確実です。
ネームサーバーごと預ける道もある
DNSの管理そのものをVercelに移す方法もあります。レコードを1つずつ入力しなくて済むので楽ですが、公式が警告しています。
If you are verifying your domain by changing nameservers, you will need to add any DNS records to Vercel that you wish to keep from your previous DNS provider.
(ネームサーバーを変更して認証する場合、元のDNSプロバイダから引き継ぎたいレコードは、すべてVercel側に追加する必要があります)
そのドメインでメールを受け取っている場合は、ここが一度手を止めるところです。 メールの宛先を決めているのもDNSのレコード(MX)なので、移し忘れるとメールが届かなくなります。既存のドメインを引っ越すなら、AレコードやCNAMEを足すだけの方法のほうが事故は少なくなります。
鍵マークは、放っておいて付く
アドレス欄の鍵マーク(https)の設定は自動です。
Vercel will automatically try to generate a certificate for every domain once it is added to a project, regardless of if it was registered through Vercel or not. However, it will only work once the certificate validation request is successful, which happens once DNS records are added and propagated.
(Vercelは、プロジェクトに追加されたすべてのドメインについて、Vercelで登録されたかどうかにかかわらず、証明書の自動発行を試みます。ただし成功するのは、DNSレコードが追加され行き渡ったあと、証明書の検証に通ってからです)
証明書はLet’s Encryptのものが使われます。順番はDNSが先、鍵マークが後なので、DNSが通っていない段階で「証明書のエラーが表示される」と慌てる必要はありません。
すぐには切り替わらない
DNSは変更した瞬間に全世界へ届くものではありません。
it can be normal to take up to 24-48 hours to see changes fully propagate through the network
(変更がネットワーク全体に行き渡るまで、24〜48時間かかることも普通にあります)
自分のパソコンでは新しいほうが見えているのに、他の人には古いほうが見えている、という時間帯があります。すでに使っているドメインを引っ越す場合は、公式が段取りを勧めています——24時間ほど前にTTL(キャッシュを保つ秒数)を60秒に縮めておいてから切り替えると、切り替わりが速くなります。
無料プランでも使える
独自ドメインはHobbyプランのまま使えます。公式には「Hobby teams have a limit of 50 custom domains per project.(Hobbyチームは1プロジェクトあたり50個まで)」とあります。個人のサイトで当たる上限ではなさそうです。
ドメイン自体の代金(年単位)は、買った先に支払うことになります。
つまずいたら
- 画面が「Invalid Configuration」のまま — DNSがまだ行き渡っていないか、値が違います。
whatsmydns.netのようなサイトで、世界のどこまで反映されたか見られます - 証明書のエラーが表示される — DNSが通ってから発行されるので、先にDNS側を確かめます
- メールが届かなくなった — ネームサーバーを移したときにMXレコードを移し忘れた可能性があります
- wwwを付けたときだけ出ない — apexとwwwは別のレコードなので、両方登録されているか確かめます
DNSまわりはエラー文が素っ気ないので、画面のスクリーンショットと設定した値をそのままエージェントに渡して聞いてしまうのが早いかもしれません。