首页 > 解决方案 > heroku:在免费计划上设置 SSL 证书?

问题描述

我想为我在 heroku 上的一个应用程序(一个基于 nodeJS + Vue 的简单应用程序)设置一些 SSL 证书。

我知道如果我升级到爱好计划(每月 7 美元),我可以自动获得它。

但是现在测试应用程序的钱太多了,所以我想知道我是否也可以通过免费计划实现一些类似的目标。

所以:是否可以使用免费计划为 Heroku 上的应用程序设置 SSL 证书?也许通过 CLI 以一种复杂/棘手的方式?

从 Heroku 页面和文档来看,这似乎是不可能的。但我不得不问:)

标签: sslherokuhttpscertificate

解决方案


在这里,我有一个更好的方法来处理这个问题。由于 Heroku 不提供免费 SSL 计划。但是您可以使用提供免费 SSL 的 Cloudflare。您可以使用 Cloudflare 作为 SSL 的桥梁。

要求:

  1. Cloudflare 帐户
  2. 您的应用程序不应具有内置 SSL 重定向(如 redirect-ssl)否则,这将导致 Too Many Redirect 错误

第 1 步:将您的域指向 CloudFlare。您基本上打开一个帐户并在出现提示时输入您的域。您可能会收到更改域名服务器的说明。

第 2 步:在 Cloudflare 的 DNS 中添加 Heroku 服务器的 Cname 记录。说明在这里 你会得到一些 SSL 安全问题。

第 3 步:现在将您的 SSL/TLS 加密模式更改为灵活(不完整)。*重要的 在此处输入图像描述

现在了解工作:-

客户端(浏览器)向https://example.com 发出请求 首先,请求通过 SSL 到达 Cloudflare。(用户看到与服务器的加密连接。)

然后 Cloudflare 使用非 SSL(非 Https 和未加密)向 Heroku Server(Origin) 发出请求。

然后 Heroku Server (Origin) 将带有非 SSL 的响应返回给 Cloudflare。

最后,Cloudflare 将请求转发给客户端(浏览器)。


你可能会想,只加密半个系统有什么好处。但“总比没有好”。

您在这里是因为您不想在 heroku 付费测功机上花钱。

这种方法更适合那些使用 http 的人。至少它保护了最脆弱的一面(客户端)。大多数攻击发生的地方。cloudflare 和您的服务器之间受到攻击的可能性非常小。因为网络覆盖。

具有较小的易受攻击概率优于 100% 易受攻击的系统


我已经测试过这种方法并在https://www.auedbaki.com上工作


推荐阅读