如何在 cloudflare 中使用 Vercel 域名服务器?

Qiang 发布在技术 1

可以在带有 Cloudflare 域名服务器的 Vercel 项目上使用通配符域,只要按照以下步骤操作,就可以“忽略”错误消息。

1. 将您的通配符域添加到您的项目中

首先,将 *.example.com 添加到项目中(Project Settings -> Domains)。 在此阶段,您将在 UI 上看到 Invalid Configuration 错误消息,指示您将其名称服务器更改为我们的。

image

请忽略这个,没关系的。

2. 通过 Vercel CLI 颁发通配符 TLS 证书

这是最关键的一步。 由于 Vercel 使用 Let's Encrypt 证书,因此有两种方法可以验证您的域名所有权:
https://letsencrypt.org/docs/challenge-types/

因为这是一个“通配符”证书,您只能通过上述文档中提到的 DNS-01 质询进行验证。 这就是为什么我们最初说有必要更改名称服务器,以便我们可以自动处理我们这边的 DNS-01 挑战,而无需您手动创建验证 TXT DNS 记录。 但这不是硬性要求。 您仍然可以使用 Vercel CLI 手动执行此 DNS-01 质询:
https://vercel.com/docs/cli/certs#challenge-only

先安装 Vercel CLIpnpm i -g vercel 或在这里 查看。

$ vercel certs issue "*.example.com" --challenge-only
Vercel CLI 28.12.6
> A certificate issuance for *.example.com has been started [2s]
  Add the following TXT records with your registrar to be able to the solve the DNS challenge:

name                   type        value
_acme-challenge        TXT         YN7LvYccJ0Xlrih9lIb--gcgH8OzlsD4POWf15XtrDc

> To issue the certificate once the records are added, run:
  `vercel certs issue *.example.com`
  Read more: https://err.sh/vercel/solve-challenges-manually

$ vercel certs issue "*.example.com"
Vercel CLI 28.12.6
> Success! Certificate entry for *.example.com created [6s]

上面示例输出。 然后,您可以使用提供的值通过 Cloudflare DNS 界面创建新的 TXT 记录。

[重要的提示]

因为 Let's Encrypt 证书有 90 天的有效期,您将需要一个新的验证挑战签名来自动续订证书,您必须按照相同的步骤重新颁发证书并使用之前的新验证签名更新 TXT 记录 证书过期。 有关更多详细信息,请参阅下面我的后续评论。

3. 在 Cloudflare 中创建通配符 DNS 条目

完成第 2 步后,您可以通过 Cloudflare DNS 界面添加一个新的通配符 DNS 条目,并将其指向我们共享的 CNAME 主机名 cname.vercel-dns.com。 所以它看起来像这样:

image

4.(可选)禁用警告通知(UI 的收件箱通知/电子邮件)

请注意,由于 Vercel 现在检查域名服务器的方式,即使您的设置完全正确,Invalid Configuration 错误消息仍将继续出现。

在围绕此名称服务器检查拥有更好的 UI/UX 之前,您可以通过 https://vercel.com/account/notifications 禁用警告通知,这样 Vercel 就不会打扰您。

你也可以重新自定义域名,比如 demo.example.com,以消除这个错误提示。

TOP
前往 GitHub Discussion 评论