Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
heroku:在免费计划上设置SSL证书?_Ssl_Heroku_Https_Certificate - Fatal编程技术网

heroku:在免费计划上设置SSL证书?

heroku:在免费计划上设置SSL证书?,ssl,heroku,https,certificate,Ssl,Heroku,Https,Certificate,我想为heroku上的一个应用程序(一个基于nodeJS+Vue的简单应用程序)设置一些SSL证书 我知道如果我升级到爱好计划(每月7美元),我可以自动拥有它 但就目前而言,对于一个测试应用程序来说,花费太多了,所以我想知道我是否也可以通过一个免费的计划来实现类似的目标 因此: 是否可以仅使用免费计划为Heroku上的应用程序设置SSL证书? 可能通过CLI以复杂/棘手的方式 从Heroku的页面和文档来看,这似乎是不可能的。 但我必须问:)在机器上获取免费证书 然后手动将证书复制到真正的服务器

我想为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