什么是sni_endpoint?如何在Heroku中配置解决自定义域名访问异常
Heroku自定义域名配置及
sni_endpoint说明 报错原因说明
synthetic-stonecrop-p4oa311n91p2gcgbqide0d1b.herokudns.com didn’t send any data.
该报错不属于流程更新导致的异常:后缀为herokudns.com的地址是Heroku分配的解析映射目标,本身不支持直接访问。Heroku的反向代理会根据请求头的Host字段匹配对应应用,直接访问该地址时没有匹配的应用配置,因此不会返回任何数据。
sni_endpoint定义
sni_endpoint是Heroku基于TLS的SNI(服务器名称指示)协议提供的SSL端点服务,用来为应用的自定义域名托管免费的Let's Encrypt SSL证书,支持HTTPS访问,是目前Heroku推荐的自定义域名SSL配置方案,替代了早年的付费专用IP SSL端点。
完整配置步骤
- 确保你的Heroku应用使用的是支持SSL的付费方案(Eco及以上方案均支持,免费方案无法使用自定义域名SSL功能)
- 安装Heroku CLI并完成账号登录
- 运行命令开启自动证书管理,自动创建SNI端点:
heroku certs:auto:enable -a <替换为你的应用名称> - 查看自定义域名对应的解析目标:
heroku domains -a <替换为你的应用名称>
命令返回结果中每个自定义域名后都会标注对应的DNS目标地址,格式为xxx.herokudns.com - 前往你的域名注册商的DNS管理后台,为自定义域名添加解析记录:
二级域名添加CNAME记录,记录值为对应DNS目标地址;根域名需添加ANAME/ALIAS记录(部分注册商称为CNAME扁平化记录),不支持ANAME的注册商可使用Heroku提供的IP地址做A记录解析 - 等待DNS解析生效,通常10分钟到24小时不等,生效后即可通过你的自定义域名正常访问应用

常见注意事项
- 不要直接访问herokudns后缀的DNS目标地址,该地址仅用作解析映射,不会直接响应访问请求
- 如果开启自动证书后长时间未生效,可运行
heroku certs:auto -a <替换为你的应用名称>查看证书签发状态 - 单个应用最多可绑定100个自定义域名,均可以通过同一个SNI端点提供HTTPS服务
内容的提问来源于stack exchange,提问作者vatsalay
相关产品推荐
相关产品推荐

