Heroku上的免费SSL安全证书?

我将一个Spree Rails应用程序推送到Heroku,我看到它使用带有https:// ssl并且在浏览器中有一个黄色的挂锁。 单击此按钮会显示“已validation身份”,证书信息显示为“已发送至:* .herokuapp.com”

这很棒。 由于Heroku端没有任何配置或费用,我的应用程序正在使用具有有效外观证书的SSL。 好吧,这是一个黄色而不是绿色的挂锁,但嘿,免费也不错。

我确定这是一个愚蠢的问题..但是如何在Heroku上运行另一个Rails应用程序并使用经过validation的证书而无需支付SSL加载项并购买我自己的证书?

您的浏览器建立的TLS / SSL连接是由于您通过appname.herokuapp.com连接到您的应用程序。 这是标准配置,可自动适用于您开箱即用的任何应用。 Heroku提供SSL加密,因为您可能会向服务器发送敏感信息,更好的做法是加密您可能不一定认为敏感的数据,但客户可能会这样做。 所有信誉良好的提供商(SAS,Web主机,电子邮件提供商)都将安装wildcard SSL证书到基本域(* .herokuapp.com),因为它是一个相对便宜的单一证书,可以自动保护所有子域。

也就是说,应用程序已经启用了SSL,只需使用https(例如https://appname.herokuapp.com)即可访问,但是如果要与之建立信任关系,则需要使用SSL端点选项。你的客户。 两种方式都与另一种方式一样安全,但使用通配符SSL(也称为共享SSL证书),客户端通过其浏览器和Heroku而不是您的应用程序/站点建立信任。 通过SSL签名到您的domain.com,客户端可以连接到您的域而不是Heroku子域,并在浏览器的连接信息中查看您站点的信息。 如果您的网站需要从Heroku消除歧义,那么您将需要在默认设置之外继续进行SSL设置。

至于SSL类型和发行者使用什么,我不推荐https://www.startssl.com/,因为他们不提供具有高浏览器普遍性的SSL,因为它们没有完全由外部根权限签名。 Comodo和消费者标准Rapid / GeoTrust是保证,识别,易用和关注的最佳选择。 您只需要一个DV(经过域validation的)SSL,它们可以在一个月内用于几个域。

有关此内容的更多信息,可以在此处找到Heroku SSL配置

我最近花了一些时间来设置它。 可以使用CloudFront和Heroku的代理来完成。 这可能最适合用于小型项目,但到目前为止似乎工作得很好! 在这里看我的post:

http://ksylvest.com/posts/2014-05-06/setup-free-ish-ssl-tls-on-heroku-for-ruby-on-rails-or-any-other-framework

自从这个问题首次得到回答以来,一些事情发生了变化,特别是Let’s Encrypt和新的Heroku SSL端点的出现,它们共同使得可以免费添加SSL。 我已经创建了一个gem来自动生成和添加证书: https : //github.com/KMarshland/heroku-ssl 。 将heroku_ssl添加到gemfile后,您只需运行:

 rake heroku_ssl:update_certs 

或者,如果您不想使用gem,则可以手动执行以下任务:

1.生成SSL证书

按照https://github.com/unixcharles/acme-client中的说明生成证书。 您需要注册您的电子邮件,授权域名,然后最终获得您的证书。 授权域时,如果只运行一台服务器,则只需将授权文件粘贴到公用文件夹中即可; 如果没有,您将需要设置专用控制器并路由或添加文本记录到您的DNS区域文件。

2.将证书添加到Heroku

下载证书后,您可以使用Heroku的Web界面或只运行

 heroku certs:update fullchain.pem privkey.pem 

3.配置DNS

您需要在DNS区域文件中设置指向[yourdomain] .herokudns.com的CNAME记录。 DNS区域文件指定将URL映射到您拥有的域名上的哪些服务器。 如果您的网站已经指向您的Heroku应用,则会有一个CNAME记录; 你只需要改变指向的地方。 如果没有,您需要添加一个新行:

 [subdomain] [TTL] IN CNAME [yourdomain].herokudns.com.