容器与平台
Render 自定义域名与 TLS 证书配置
Render 为每个自定义域名提供免费、全托管的 TLS 证书:证书来自 Let's Encrypt 或 Google Trust Services,到期前自动续期,HTTP 请求也会自动跳转到 HTTPS。操作上只有三步:把域名加到 Web Service 或 Static Site,每个名字加一条 DNS 记录,回控制台点 Verify。Render 支持通配符域名,但文档里没有上传自有证书的方式。
步骤和菜单名称以 Render 官方文档为准(截至 2026 年 11 月)。服务地址 example.onrender.com 和域名 example.com 是示例。
速查表
| 问题 | Render 的做法 |
|---|---|
| 自动证书的 CA | Let's Encrypt 和 Google Trust Services |
根域名 example.com |
ANAME/ALIAS 指向 example.onrender.com,或 A 记录 216.24.57.1 |
www 和其他子域名 |
CNAME 指向 example.onrender.com |
| CAA 要放行 | letsencrypt.org 和 pki.goog(通配符再加 issuewild) |
| 通配符证书 | 支持,需要 _acme-challenge 和 _cf-custom-hostname 两条额外 CNAME |
| 上传自有证书 | 文档未提供 |
| 续期 | 自动 |
| 套餐内含自定义域名 | Hobby 2 个、Pro 15 个、Scale 25 个,超出每个每月 0.25 美元 |
国内访问说明
Render 的服务部署在境外区域,从中国大陆访问的延迟和稳定性没有保证,部分网络下可能连不上。拿来跑海外业务的 API、演示项目没问题;如果主要用户在国内,或者网站需要 ICP 备案,建议直接用阿里云、腾讯云等国内云,证书可以参考 阿里云 SSL 证书 或 腾讯云 SSL 证书。
第一步:在 Render 控制台添加域名
只有 Web Service 和 Static Site 能绑定自定义域名。打开服务,进入 Settings > Custom Domains,点 “+ Add Custom Domain”,输入域名后点 “Save”。
Render 会自动把根域名和 www 配成一对:
- 添加
www.example.com,Render 会同时加上example.com,并把它跳转到www; - 添加
example.com,Render 会同时加上www.example.com,并把它跳转到根域名。
中文域名要先转成 Punycode 再添加。
第二步:添加 DNS 记录
先删掉相关名字上的所有 AAAA 记录。Render 用 IPv4 提供服务,文档提醒 AAAA 记录会导致自定义域名出现异常。
| 名字 | 类型 | 记录值 |
|---|---|---|
example.com |
ANAME 或 ALIAS(或拉平的 CNAME) |
example.onrender.com |
example.com(备选) |
A |
216.24.57.1 |
www.example.com |
CNAME |
example.onrender.com |
DNS 服务商支持 ANAME/ALIAS 或 CNAME 拉平就优先用;不支持的话,根域名用 A 记录 216.24.57.1。如果 dig 查出 Render 没给过的值,说明服务商开了默认记录或域名转发之类的功能,要关掉。
域名在 Cloudflare 的,Render 要求根域名也用 CNAME(Cloudflare 会自动拉平),Proxy status 设为 DNS only,SSL/TLS 模式设为 Full。等 Render 显示证书已签发,才可以打开代理。
第三步:检查 CAA 记录
域名没有 CAA 记录就跳过这一步。有的话,Render 用的两家 CA 都要放行,用了通配符域名还要加 issuewild:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"
example.com. 3600 IN CAA 0 issuewild "letsencrypt.org"
example.com. 3600 IN CAA 0 issue "pki.goog"
example.com. 3600 IN CAA 0 issuewild "pki.goog"
Render 两家 CA 都可能用到,只放行其中一家,即使第一张证书签出来了,之后的签发或续期也可能被挡住。可以用 CAA 检测工具 确认。
第四步:验证域名
回到 Custom Domains,点域名旁边的 “Verify”。验证通过后 Render 签发证书,并把域名标记为已验证。验证失败通常是 DNS 还没生效,等几分钟再点。Render 建议改完记录后去清一下公共 DNS 的缓存(Google Public DNS、Cloudflare 1.1.1.1、OpenDNS 都有清缓存页面),换 NS 之后尤其需要,可以加快验证和签发。
通配符域名
通配符域名需要三条 CNAME,缺一条都签不出证书。像添加普通域名一样添加 *.example.com,再加上这三条记录:
| 主机记录 | 记录值 |
|---|---|
* |
example.onrender.com |
_acme-challenge |
example.verify.renderdns.com |
_cf-custom-hostname |
example.hostname.renderdns.com |
_acme-challenge 让 Render 能通过 Let's Encrypt 的 DNS 验证签发和续期通配符证书;_cf-custom-hostname 让 Render 的 DDoS 防护服务商 Cloudflare 能验证你对这个通配符域名的所有权。根域名也必须指向 Render,否则通配符配置会失败。在 Cloudflare 开代理、又只添加了通配符没添加根域名时,根域名的流量也会被送到同一个 Render 服务,所以根域名的记录要设成 DNS only。
自有证书
Render 文档里没有上传自有证书的入口:TLS 文档说证书全托管、无需设置,自定义域名文档里也找不到上传选项。按托管证书来规划即可;确实需要 OV/EV 证书或指定 CA,只能在 Render 前面放一层支持自定义证书的代理或 CDN 来终止 TLS。
验证
配置正确时,颁发者是 Let's Encrypt 或 Google Trust Services,HTTP 请求返回跳转到 HTTPS 的响应。用 SSL 证书检查 从外部检查,或者在终端运行:
curl ssl.sh/example.com
确认 Render 返回的证书和跳转:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
| openssl x509 -noout -issuer -subject -ext subjectAltName -dates
curl -sI http://example.com | head -n 3
自动续期
Render 在证书到期前自动续期,不需要写定时任务。续期和首次签发依赖的条件一样:DNS 一直指向 Render,CAA 一直放行两家 CA,通配符域名的 _acme-challenge CNAME 一直保留。证书有效期还在缩短,Let's Encrypt 默认证书 2027 年 2 月 10 日变成 64 天、2028 年 2 月 16 日变成 45 天,续期越频繁,DNS 改动搞坏续期的机会越多。建议把域名加到 ssl.sh 监控(开发中)。
常见问题排查
- Verify 失败:DNS 没生效或填错了。用
dig example.com、dig www.example.com CNAME对照上面的表,删掉AAAA和服务商的默认记录,再点 “Verify”。 - 刚验证完访问报 502 Bad Gateway:Render 可能还在更新路由规则,等几分钟。
- 套了 Cloudflare 证书一直签不下来:在 Render 显示证书已签发之前,记录保持 DNS only;通配符的
_acme-challenge记录不要开代理。 - 通配符配置失败:根域名没指向 Render,或者三条 CNAME 少了一条。
- CAA 报错:同时放行
letsencrypt.org和pki.goog,见 CAA 记录阻止签发。 - 浏览器提示证书和域名不匹配(NET::ERR_CERT_COMMON_NAME_INVALID):部分解析器还缓存着旧记录。下次改记录前先把 TTL 调低,并清一下公共 DNS 缓存。
常见问题
Render 的证书是哪家 CA 签的?
Let's Encrypt 和 Google Trust Services 都有可能。设了 CAA 记录的话,letsencrypt.org 和 pki.goog 两个都要放行,否则 Render 选到被你漏掉的那家时,签发或续期就会失败。
Render 支持通配符证书吗?
支持。把 *.example.com 加到服务上,再加三条 CNAME:* 指向服务的 onrender.com 地址,_acme-challenge 指向 服务名.verify.renderdns.com,_cf-custom-hostname 指向 服务名.hostname.renderdns.com。根域名也必须指向 Render。
能在 Render 上传自己的证书吗?
Render 文档没有介绍任何上传证书的方式,所有自定义域名都用平台托管的证书。确实需要指定 CA 或 OV/EV 证书,只能在 Render 前面加一层支持自定义证书的代理或 CDN。
用 Cloudflare 解析时要不要开代理?
Render 验证域名、签发证书期间设为 DNS only,Cloudflare 的 SSL/TLS 模式设为 Full。等 Render 控制台显示证书已签发且有效后,才可以把记录改成 Proxied。