ガイド

公開と運用2026年11月5日約12分

辻直哉

Vercel で独自ドメインを設定すると、〜.vercel.app ではなく自分のドメインでサイトを開けるようになります。この記事では、Cloudflare で DNS を管理している場合も含めて、ドメインを足すところから HTTPS で開けることを確かめるところまでを書きます。私の naoya-tsuji.com も、この形で動いています。

この記事でできること
かかる時間
必要なもの
確認した環境

独自ドメインとは・料金

独自ドメインは、naoya-tsuji.com のように自分で取得したサイトの住所です。

料金は2つに分かれます。

  • ドメイン代:取得先(お名前.com、Cloudflare など)に払います。値段と更新の時期は取得先で確かめてください。Vercel でも買えて、値段は登録業者の価格と同じだと公式に書かれています。
  • Vercel 側:独自ドメインを足すこと自体にお金はかかりません。無料の Hobby プランでも使えて、1つのプロジェクトに 50 個までという上限があります(Vercel 公式「Adding & Configuring a Custom Domain」)。

用語を2つだけ先に押さえておきます。

  • apex ドメイン:naoya-tsuji.com のような、前に何もつかない形
  • サブドメイン:www.naoya-tsuji.com や ads.naoya-tsuji.com のように、前に一語つく形

Vercel のプロジェクトにドメインを足す

  1. Vercel のダッシュボードで、ドメインをつなぎたいプロジェクトを開きます。

    Vercel のダッシュボードでプロジェクトの一覧が表示されている画面
    Vercel のダッシュボードでプロジェクトの一覧が表示されている画面
  2. 左のメニューの Domains を開き、右上の Add Existing を押します(ドメインをまだ持っていなければ、隣の Buy から Vercel で買えます)。

    Vercel のプロジェクトの Domains の画面。左のメニューの Domains と、右上の Add Existing のボタン
    Vercel のプロジェクトの Domains の画面。左のメニューの Domains と、右上の Add Existing のボタン
  3. Add Domains の画面で、ドメイン(例:example.com)を入れます。1行に1つずつ書けば、www.example.com も一緒に足せます。行き先は Connect to an environment の Production(本番)のままで、右下のボタンで足します。www の転送は後の節で設定します。

    Vercel の Add Domains の画面。ドメインを入れる欄と、右下の追加のボタン
    Vercel の Add Domains の画面。ドメインを入れる欄と、右下の追加のボタン
  4. 足すと、そのドメインの欄(公式の言い方では「domain card」)に、DNS に入れる値が出ます。次の節ではこの値を使います。

この時点で Invalid Configuration と出ますが、DNS をまだ設定していないので正常です。

DNS の設定(A レコードと CNAME)

DNS は「このドメインの行き先はここ」と書いた表です。何を入れるかは、apex かサブドメインかで変わります。

足したもの種類(Type)名前(Name)値(Value)
apex(example.com)A@domain card に出る IP。多くは 76.76.21.21
サブドメイン(www など)CNAMEwww など前の一語domain card に出る値(プロジェクトごとに違う)

値は必ず、自分のプロジェクトの domain card に出ているものを写してください。公式によると、A レコードは多くのプロジェクトで 76.76.21.21 ですが、新しいプロジェクトでは 216.198.79.1 のような別の値になることがあります。CNAME もプロジェクトごとに違う値(例:d1d4fc829fe7bc7c.vercel-dns-017.com)です。古い記事の値を写すと確認が通りません(Vercel 公式「Can I use my domain on Vercel with A records?」)。

apex に CNAME が使えないのは、DNS の決まりで apex には他のレコード(NS やメールの MX)が必要で、CNAME と同居できないからです。

Cloudflare で入れる

  1. Cloudflare のダッシュボードでドメインを選び、DNS の Records を開きます。

    Cloudflare のダッシュボードで DNS の Records の一覧を開いた画面
    Cloudflare のダッシュボードで DNS の Records の一覧を開いた画面
  2. Add record を押し、Type・Name・値を上の表の通りに入れます。

  3. Proxy status を押して、灰色の雲の DNS only にしてから Save を押します。

    Cloudflare の Add record で Type・Name・IPv4 address を入れ、Proxy status を DNS only にした画面
    Cloudflare の Add record で Type・Name・IPv4 address を入れ、Proxy status を DNS only にした画面

A レコードの欄は Type・Name・IPv4 address・Proxy status・TTL です(2026年11月の画面。種類を変えると、値の欄の名前も変わります)。Proxy status は最初はオン(オレンジの雲・Proxied)になっているので、押して灰色の雲(DNS only)にしてから Save を押します。

なぜ「DNS only(灰色の雲)」にするのか

Cloudflare は、画面から足したレコードを最初から Proxied(オレンジの雲)にします。Proxied は、訪問者と Vercel の間に Cloudflare が入る形です。Vercel は Cloudflare に DNS だけ任せる場合、レコードを DNS only にするよう案内しています。理由は主に3つです(Vercel 公式「Using Cloudflare and other reverse proxies with Vercel」)。

  • 間に入る仕組みが2つになり、転送・キャッシュ・安全の設定を両方で合わせる必要が出る
  • Vercel の Bot Protection のルールが効かなくなり、訪問者の IP や場所も正しく届かないことがある
  • 証明書を出すための確認(/.well-known/acme-challenge/)が Vercel に届かないと、HTTPS の証明書が出ない・更新できない

私の naoya-tsuji.com は Cloudflare の DNS を使い、Vercel 向けのレコードはすべて DNS only です。

www と www なし、どちらかに飛ばす

www.example.com と example.com の両方で開けるようにしつつ、片方に転送(リダイレクト)してまとめます。まとめないと、片方だけ証明書が切れる、検索で2つのページとして扱われる、といったことが起きます。

  1. Domains の画面で、転送したい側(例:www.example.com)の Edit を押します。

  2. Redirect to Another Domain を選び、右の欄で転送先(例:example.com)を選びます。

  3. 真ん中の欄で転送の種類を選び、Save を押します。私は 308 Permanent(ずっと転送する、の意味)にしました。

    Vercel の Edit 画面で、Redirect to Another Domain と 308 Permanent を選び、転送先を入れたところ
    Vercel の Edit 画面で、Redirect to Another Domain と 308 Permanent を選び、転送先を入れたところ
    Domains の一覧で www が apex に転送されている表示
    Domains の一覧で www が apex に転送されている表示

どちらを主にするかについて、Vercel は www を主にして、www なしから転送する形をすすめています。www は CNAME で向けられるので、Vercel 側で行き先を細かく変えられるからです。www なしを主にしても動きます。私は短い naoya-tsuji.com を主にしました。

証明書(HTTPS)が出るまで

Vercel は、プロジェクトに足したドメインに証明書を自動で出します。Let's Encrypt という発行元を使い、DNS が Vercel を向いて行き渡ったあとに発行されます。自分で何かを申し込む必要はありません。更新も、切れる 14〜30 日前に自動で試みられます(Vercel 公式「Working with SSL Certificates」)。

  1. DNS を入れたら、Vercel の Domains に戻ります。

  2. ドメインの行に青いチェックと Valid Configuration が出れば完了です。

    Vercel の Domains で、ドメインが正しく設定された表示になった画面
    Vercel の Domains で、ドメインが正しく設定された表示になった画面

Cloudflare での A・CNAME の変更は早ければ数分で行き渡りますが、元のレコードの TTL(覚えておく時間)が長いと待ちます。ネームサーバーを変えた場合は 24〜48 時間かかることがあります。

証明書が出ないときは、次の2つを見てください。

  • Cloudflare のレコードが Proxied(オレンジの雲)のままになっていないか
  • CAA レコード(証明書を出せる発行元を絞る設定)を入れている場合、Let's Encrypt が許可されているか(0 issue "letsencrypt.org")

サブドメインを別のプロジェクトにつなぐ

1つのドメインの下で、サブドメインごとに別の Vercel プロジェクトを出せます。私は naoya-tsuji.com の下に、アプリごとのプロジェクトをつないでいます。

サブドメインつないでいるプロジェクト
naoya-tsuji.com(と www)HP
ads.naoya-tsuji.comads-board(アプリの管理画面)
tsumoru.naoya-tsuji.comtsumoru
dogfight.naoya-tsuji.comdogfight
giroku.naoya-tsuji.comgiroku-lp

手順は、上の「ドメインを足す」と「DNS の設定」をプロジェクトごとにくり返すだけです。

  1. つなぎたいプロジェクトの Domains の画面で、サブドメイン(例:ads.example.com)を足します。

  2. Cloudflare で、Name を前の一語(例:ads)にしてレコードを足し、DNS only にします。

    Cloudflare の DNS の一覧に、サブドメインごとのレコードが DNS only で並んでいる画面
    Cloudflare の DNS の一覧に、サブドメインごとのレコードが DNS only で並んでいる画面

サブドメインは CNAME が基本ですが、私は ads.naoya-tsuji.com を A レコード(76.76.21.21、DNS only)で足して、そのまま開けています。迷ったら domain card に出る値に合わせてください。Name の欄にドメインまで入れて ads.example.com.example.com のようにしてしまうのは、公式にもあるよくある間違いです。

なお、ドメインのつなぎ方とは別の話ですが、私の HP は GitHub に push しても本番に出ない設定にしていて、vercel deploy --prod で手で公開しています。

確かめ方

ブラウザで開くだけでなく、ターミナルでも見ておくと、www のような見落としに気づけます。

DNS の行き先を見る:

dig A example.com +short
dig CNAME www.example.com +short

domain card の値と同じなら合っています。Cloudflare の Proxied のままだと、Cloudflare の IP が返ってきます。

HTTPS と転送を見る:

curl -sI https://example.com
curl -sI https://www.example.com
curl -sI http://example.com

1行目が HTTP/2 200 なら開けています。www のほうは 308 と location: https://example.com/ が返れば転送できています。証明書が切れていると、こう出ます。

SSL certificate problem: certificate has expired

私が www を直したときも、https と http の両方で naoya-tsuji.com に着いて 200 が返ることを確かめました。

よくあるエラーと直し方

エラーの文原因直し方
Invalid ConfigurationDNS をまだ入れていない、値が違う、同じ名前に古い A・CNAME が残っているdomain card の値を写し直し、古いレコードを消す。CNAME の値は末尾の点まで写す
SSL certificate problem: certificate has expired証明書が切れている。私の場合は www が Vercel のプロジェクトに未登録で、更新されなかった開けないドメインをプロジェクトの Domains に足す。DNS と Proxy status も確かめる
Another Vercel account is using this domainそのドメインが別の Vercel アカウントやチームにつながっている出てくる TXT レコードを DNS に足して、使ってよいことを確かめてもらう
ERR_SSL_PROTOCOL_ERROR証明書がまだ無い、Proxy の設定、使っているネットワークの問題など〜.vercel.app では開けるか、別の回線(スマホの通信など)で開けるかを比べ、Domains の状態を見る

よくある質問

Vercel の無料プランでも独自ドメインは使えますか?

使えます。無料の Hobby プランでも、1つのプロジェクトに 50 個まで足せます。かかるのは取得先へのドメイン代だけです。

独自ドメインを無料で手に入れる方法はありますか?

Vercel の有料の Pro プランには、対象のドメインが最初の1年だけ無料になる特典があります。2年目からは通常の値段です。無料プランには、この特典はありません。

Cloudflare のオレンジの雲のままではだめですか?

動くこともありますが、Vercel は DNS only をすすめています。証明書の確認が届かず HTTPS が出ない、更新できない、ということが起きやすくなります。

www ありとなし、どちらにすればいいですか?

Vercel のおすすめは www を主にする形です。短い URL を使いたければ www なしを主にしても動きます。どちらにしても、両方をプロジェクトに足して、片方からもう片方へ転送してください。

DNS を変えたのに反映されません。

元のレコードの TTL が長いと、行き渡るまで時間がかかります。dig で値が変わったかを見て、変わっていれば Vercel の Domains の表示が変わるのを待ちます。

書いた人