我将一个Spree Rails应用程序推送到Heroku,我看到它正在使用https://
的ssl并且在浏览器中有一个黄色的挂锁。单击此按钮会显示“已验证身份”,证书信息显示为“已发送至:* .herokuapp.com”
这很棒。由于Heroku端没有任何配置或费用,我的应用程序正在使用具有有效外观证书的SSL。好吧,这是一个黄色而不是绿色挂锁,但嘿,免费也不错。
我确定这是一个愚蠢的问题..但是如何使用经过验证的证书在Heroku上运行另一个Rails应用程序而无需支付SSL加载项并购买我自己的证书?
答案 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的代理来完成。这可能最适合用于小型项目,但到目前为止似乎工作得很好!在这里看我的帖子:
答案 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.