如何在 Vercel 上配置自定义域名和 SSL 证书?
在 Vercel 上配置自定义域名和 SSL 证书是一个简单直接的过程,Vercel 提供了自动化的 SSL 证书管理,使得这一过程变得非常便捷。
自定义域名配置
1. 添加自定义域名
通过 Vercel Dashboard 添加:
- 登录 Vercel Dashboard
- 选择你的项目
- 进入 "Settings" → "Domains"
- 点击 "Add Domain"
- 输入你的域名(如
example.com或www.example.com) - 选择域名类型:
- Production:用于生产环境
- Preview:用于预览部署
通过 Vercel CLI 添加:
bash# 添加生产域名 vercel domains add example.com # 添加预览域名 vercel domains add preview.example.com --preview
2. 域名类型
Vercel 支持以下域名类型:
根域名:
example.com- 需要配置 A 记录或 CNAME 别名记录
子域名:
www.example.comblog.example.comapi.example.com- 使用 CNAME 记录
通配符域名:
*.example.com- 匹配所有子域名
- 需要付费计划
3. DNS 配置
配置步骤:
- 在 Vercel Dashboard 中查看 DNS 配置要求
- 登录你的域名注册商(如 GoDaddy、Namecheap、Cloudflare)
- 根据类型添加相应的 DNS 记录
A 记录配置(用于根域名):
shellType: A Name: @ Value: 76.76.21.21 TTL: 3600 (或默认值)
CNAME 记录配置(用于子域名):
shellType: CNAME Name: www Value: cname.vercel-dns.com TTL: 3600 (或默认值)
使用 Cloudflare 时的特殊配置:
如果你使用 Cloudflare 作为 DNS 提供商,需要注意:
-
代理模式:
- 启用 Cloudflare 代理(橙色云朵)时,Vercel 可能无法正确验证域名所有权
- 建议先禁用代理(灰色云朵),等待验证通过后再启用
-
SSL 模式:
- 设置为 "Full" 或 "Full (strict)"
- 不要使用 "Flexible" 模式
4. 域名验证
验证过程:
- 添加 DNS 记录后,Vercel 会自动验证域名配置
- 验证通常需要几分钟到几小时(取决于 DNS 传播)
- 验证成功后,域名状态会显示为 "Valid Configuration"
验证检查:
bash# 检查 DNS 记录是否生效 dig example.com # 检查 CNAME 记录 dig www.example.com CNAME # 检查 DNS 传播 nslookup example.com
SSL 证书配置
1. 自动 SSL 证书
Vercel 使用 Let's Encrypt 自动为你的域名提供 SSL 证书:
特点:
- 完全免费
- 自动续期
- 支持 HTTP/2 和 HTTP/3
- 自动配置
证书类型:
- 单域名证书:保护单个域名
- 通配符证书:保护主域名及其所有子域名(需要付费计划)
2. SSL 证书自动管理
自动颁发:
- 域名验证通过后,Vercel 自动颁发 SSL 证书
- 通常在几分钟内完成
- 无需手动操作
自动续期:
- 证书到期前 30 天自动续期
- 无需担心证书过期
- 完全自动化
证书监控:
- Vercel 持续监控证书状态
- 发现问题时自动修复
- 在 Dashboard 中可以查看证书详情
3. 强制 HTTPS
自动重定向:
Vercel 默认将所有 HTTP 请求重定向到 HTTPS:
javascript// 在 vercel.json 中配置 { "redirects": [ { "source": "/:path*", "has": [ { "type": "host", "value": "example.com" } ], "destination": "https://example.com/:path*", "permanent": true } ] }
HSTS 配置:
javascript{ "headers": [ { "source": "/(.*)", "headers": [ { "key": "Strict-Transport-Security", "value": "max-age=31536000; includeSubDomains" } ] } ] }
高级配置
1. 多域名配置
添加多个域名:
- 在 Domains 设置中逐个添加域名
- 为每个域名配置 DNS 记录
- 等待所有域名验证通过
主域名设置:
javascript// 在 vercel.json 中设置主域名 { "name": "my-project", "alias": ["example.com", "www.example.com"] }
2. 环境特定域名
预览环境域名:
bash# 为预览部署添加特定域名 vercel domains add preview.example.com --preview
开发环境域名:
bash# 为开发环境添加域名 vercel domains add dev.example.com --dev
3. 自定义 404 页面
配置自定义 404 页面:
javascript// 在 vercel.json 中配置 { "rewrites": [ { "source": "/404", "destination": "/custom-404.html" } ], "notFound": true }
故障排除
1. 域名验证失败
常见原因:
- DNS 记录配置错误
- DNS 传播未完成
- 域名已被其他服务使用
- Cloudflare 代理模式问题
解决方案:
- 检查 DNS 记录是否正确
- 使用 DNS 检查工具验证记录
- 等待 DNS 传播完成(最多 48 小时)
- 如果使用 Cloudflare,暂时禁用代理
bash# 检查 DNS 记录 dig example.com +short # 检查 WHOIS 信息 whois example.com # 检查 DNS 传播 dig example.com @8.8.8.8
2. SSL 证书颁发失败
常见原因:
- 域名验证未通过
- DNS 记录配置错误
- 防火墙阻止 Let's Encrypt 验证
- 域名已被其他证书使用
解决方案:
- 确保域名验证通过
- 检查 DNS 记录配置
- 检查防火墙设置
- 在 Dashboard 中手动触发证书重新颁发
3. HTTPS 重定向不工作
检查清单:
- 确认 SSL 证书已颁发
- 检查 Vercel 配置中的重定向设置
- 清除浏览器缓存
- 使用隐私模式测试
最佳实践
1. 域名管理
- 使用版本控制管理域名配置
- 定期检查域名到期时间
- 为重要域名设置自动续费
- 保留域名访问权限的备份
2. SSL 安全
- 启用 HSTS 以强制 HTTPS
- 定期检查 SSL 证书状态
- 使用强密码保护域名账户
- 启用双因素认证
3. 监控和告警
- 设置域名到期提醒
- 监控 SSL 证书状态
- 配置网站可用性监控
- 设置错误告警
4. 性能优化
- 使用 CDN 加速静态资源
- 启用 HTTP/2 和 HTTP/3
- 优化 DNS 解析时间
- 使用现代 TLS 版本
常见问题解答
Q1: 可以使用免费域名吗?
A: 可以,Vercel 支持任何合法的域名,包括免费域名。但建议使用付费域名以获得更好的稳定性和支持。
Q2: SSL 证书有数量限制吗?
A: 免费计划中,每个项目可以添加无限数量的域名,每个域名都会自动获得 SSL 证书。
Q3: 如何迁移现有域名到 Vercel?
A:
- 在 Vercel 中添加域名
- 更新 DNS 记录指向 Vercel
- 等待 DNS 传播
- 验证配置正确
Q4: 可以使用自己的 SSL 证书吗?
A: Vercel 不支持上传自定义 SSL 证书,必须使用 Vercel 自动颁发的 Let's Encrypt 证书。
Q5: 域名配置需要多长时间生效?
A: 通常需要几分钟到几小时,最长可能需要 48 小时(DNS 传播时间)。
总结
在 Vercel 上配置自定义域名和 SSL 证书的主要优势:
- 自动化:SSL 证书自动颁发和续期
- 简单:直观的配置界面
- 免费:Let's Encrypt SSL 证书完全免费
- 安全:自动 HTTPS 重定向
- 可靠:99.99% 的正常运行时间保证
通过遵循上述步骤和最佳实践,你可以轻松地在 Vercel 上配置自定义域名和 SSL 证书,为你的网站提供安全、专业的访问体验。