heroku:在免费计划上设置SSL证书?
我想为heroku上的一个应用程序(一个基于nodeJS+Vue的简单应用程序)设置一些SSL证书 我知道如果我升级到爱好计划(每月7美元),我可以自动拥有它 但就目前而言,对于一个测试应用程序来说,花费太多了,所以我想知道我是否也可以通过一个免费的计划来实现类似的目标 因此: 是否可以仅使用免费计划为Heroku上的应用程序设置SSL证书? 可能通过CLI以复杂/棘手的方式 从Heroku的页面和文档来看,这似乎是不可能的。heroku:在免费计划上设置SSL证书?,ssl,heroku,https,certificate,Ssl,Heroku,Https,Certificate,我想为heroku上的一个应用程序(一个基于nodeJS+Vue的简单应用程序)设置一些SSL证书 我知道如果我升级到爱好计划(每月7美元),我可以自动拥有它 但就目前而言,对于一个测试应用程序来说,花费太多了,所以我想知道我是否也可以通过一个免费的计划来实现类似的目标 因此: 是否可以仅使用免费计划为Heroku上的应用程序设置SSL证书? 可能通过CLI以复杂/棘手的方式 从Heroku的页面和文档来看,这似乎是不可能的。 但我必须问:)在机器上获取免费证书 然后手动将证书复制到真正的服务器
但我必须问:)在机器上获取免费证书
然后手动将证书复制到真正的服务器并对其进行配置。响应延迟,但我在这里添加了一个问题,我刚刚花了一个小时尝试使用Heroku设置SSL,结果是死路一条 底线是Heroku提到他们提供免费SSL证书,但事实并非如此,除非你有爱好($7/mo)或专业计划 有更多的细节和其他用户对相同问题的反馈 上面关于LetsEncrypt的答案是不正确的。虽然您可以获得免费证书,但它不能包含在免费Heroku应用程序中 其他用户已经用一个分步指南指出了这一点,但该指南已经过时,并且提到的“实验室”选项不再适用于Heroku 请参阅下面的评论,了解一些备选建议
在我的特定情况下,我能够在上获得免费SSL。由于您没有明确说明是否需要将SSL证书应用于自定义域,因此我认为有必要根据Heroku文档说明: 使用免费dynos的应用程序可以使用*.herokuapp.com证书,如果 需要SSL
也许未来的读者会发现这个答案很有用…我也有这个问题。我想为我的React应用程序在Heroku上的免费帐户设置一个自定义域。我在网上搜索了很多信息,阅读了Heroku支持部门的大量文档 结论是,在Heroku免费帐户上,无法设置具有SSL证书的自定义域名。如果您的自定义域名需要SSL,则需要升级到其任何付费托管帐户 Heroku确实为他们的免费帐户提供SSL证书,只要它不使用自定义域名。因此,标准的免费帐户URL将类似于“” 注意。GoogleFirebase允许使用SSL,用于之前的特定流量。对于测试应用程序,这将是一个完美的选择。我正在使用它。设置我的自定义域很容易
我希望这可以为您节省数小时的搜索时间。这里我有一个更好的方法来处理这个问题。因为Heroku不提供免费SSL计划。 但是您可以使用Cloudflare,它提供免费的SSL。 您可以使用Cloudflare作为SSL的桥接器 要求: 1.Cloudflare帐户 2.应用程序不应具有内置SSL重定向(如重定向SSL) 否则,这将导致太多重定向错误 步骤1:将您的域指向CloudFlare。您基本上是在收到提示时开立帐户并进入您的域。您可能会收到更改域名服务器的指示 步骤2:在Cloudflare的DNS中添加Heroku服务器的Cname记录。说明是 在这里,您将遇到一些SSL安全问题 步骤3:现在将SSL/TLS加密模式更改为灵活(非完全)*重要的 现在了解工作原理:- 客户端(浏览器)向发出请求 首先,请求通过SSL到达Cloudflare。(用户请参阅与服务器的加密连接。) 然后Cloudflare使用非SSL(非Https且未加密)向Heroku服务器(源站)发出请求 然后Heroku服务器(源)将带有非SSL的响应返回给Cloudflare 最后,Cloudflare将请求转发给客户端(浏览器)
我已经测试过这种方法,并且正在研究解决这个问题的一种方法是在主机上设置代理服务器,您可以在主机上设置SSL证书,然后简单地使用加密将请求转发到免费的herokudns域 您必须有一个单独的服务器,运行nginx或httpd之类的东西。。我不确定是否有免费服务来托管代理,但通常当你注册一个域时,你可能会得到一个托管插件,或者人们已经可以访问一个加密的主机,只想在他们的节点应用程序中使用Heroku 设置httpd代理有点像这样(从中):
ServerName customdomain.com
SSLProxyEngine打开
SSLProxyCheckPeerCN打开
SSLPROXYCHECKPEERON过期
ProxyPass/https://heroku-app-name.herokuapp.com
ProxyPassReverse/https://heroku-app-name.herokuapp.com
通过这种方式,您可以一直进行完全加密:)如果您使用
1] 自由赫罗库
您不能使用1)免费ssl或2)付费ssl
2] 付费heroku
1) 你可以得到免费的ssl 2)你也可以使用付费的ssl
解决方案
1] 赫罗库得到报酬
2] 转到netlify或其他替代方案以下是免费使用完整SSL的方法 步骤1:将您的域指向。您基本上是在收到提示时开立帐户并进入您的域。您可能会收到更改域名服务器的指示 步骤2:在Cloudflare的DNS中添加Heroku服务器的Cname记录。说明是。在这里,您将遇到一些SSL安全问题 步骤3:现在将SSL/TLS加密模式更改为完全加密 步骤4:在DNS设置中,您需要创建一个CNAME:yourdomain.com->yourapp.com
(我在这里了解了一般方法,虽然它很旧,但仍然有效。Heroku中不存在免费SSL,或者让我说,在免费计划中实现它是不可能的。 为了让您能够在Heroku中包含任何形式的第三方SSL,无论是付费SSL还是免费的第三方SSL,哟
<VirtualHost 1.2.3.4:80>
ServerName customdomain.com
SSLProxyEngine On
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
ProxyPass / https://heroku-app-name.herokuapp.com
ProxyPassReverse / https://heroku-app-name.herokuapp.com
</VirtualHost>
# config.force_ssl = true
config.force_ssl = true