Heroku上的免费SSL安全证书?

时间:2014-03-30 23:44:30

标签: ruby-on-rails ssl heroku

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

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

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

3 个答案:

答案 0 :(得分:16)

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

据说应用程序已经启用了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(经过域验证的)SSL,它们可以在一个月内用于几个域。

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

自从这个问题首次得到回答以来,一些事情发生了变化,特别是Let的加密和新的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的网络界面,也可以直接运行

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.