21

我创建了一个站点并将其放在 Heroku 上。然后,我在 Heroku 控制面板中添加了一个自定义域(例如“site.example.com”),并将 DNS 指向我的 Heroku 地址。这工作正常,但是当我访问该站点时,我收到一个很大的浏览器警告,说证书是针对 herokuapp.com,而不是针对“site.example.com”。如何关闭 HTTPS 或以其他方式修复它?(我不需要我自己的网站 SSL 证书。)

注意:如果您的应用程序强迫人们使用 SSL,这不是 Heroku 的错。检查production.rb以确保它没有说:

config.force_ssl = true

如果是,请将其更改为 false:

config.force_ssl = false
4

2 回答 2

5

不幸的是,您无法阻止某人尝试通过 SSL 访问您的网站。也就是说,任何人都可以简单地添加https到开头://site.example.com。我建议您打开支持票证,让支持团队查看您当前的配置。不幸的是,除非您拥有使用ssl:endpoint附加组件指定的自己的 SSL 证书,否则 Cedar 应用程序中存在的Piggyback SSL会泄漏。*.herokuapp.com

事实是,即使 Piggyback SSL 没有到位,您的访问者在访问您网站的 SSL 版本时仍然会收到错误消息。您可能会考虑从Namecheap之类的地方购买一个非常便宜的 SSL 证书(看起来您可以以 8 美元/年的价格购买一个超级简单的证书)只是为了摆脱错误。然后,您可以强制重定向到您网站的非 SSL 版本,一切都很好!

于 2013-04-09T05:44:35.333 回答
0

这可能不是最佳实践,但如果您非常想强制“NO-SSL”,那么您可以通过 JavaScript 代码执行以下操作。

 window.onload=function(){
     $(function(){
         if(window.location.protocol==="https:")
             window.location.protocol="http";
     });
 }
于 2015-07-01T07:17:59.003 回答