我有一个节点应用程序在Heroku上成功运行.我已经购买了加急SSL证书,一切正常.我转到https ...并获得一个完整的"绿色条形图",证明该网站是通过https提供的
但是,非SSL标准http仍然可用.如何强制应用程序通过https服务?谢谢
Boo*_*oon 23
在Heroku上,确定请求来自http的事实有点棘手.https在heroku路由层处理,它将请求传递给http上的节点应用程序.
这篇文章让我松了一口气http://jaketrent.com/post/https-redirect-node-heroku/
ron*_*ory 18
为此,我只是使用Cloudflare的“始终使用 HTTPS”功能。只需按照以下步骤操作:
1. 如果您还没有注册Cloudflare
2.添加您的站点example.com
3.选择一个计划。(免费计划就足够了)
4.查看您的 DNS 记录。例如,如果您在 Namecheap 上已经有一些条目,Cloudflare 会尝试自动检测记录。什么重要的是,你离开至少与A型记录IPv4的地址,也是CNAME类型,其中Content是DNS Target你的应用程序的Heroku的设置从域名英寸 另请参阅屏幕截图
5.您需要指向 Cloudflare 的域名服务器才能成功激活您的站点,否则 Cloudflare 无法管理您的 DNS 并优化您的站点。删除现有的域名服务器,然后用 Cloudflare 的域名服务器替换它们。他们还会向您显示页面上的说明(最多可能需要 48 小时才能使您的网站处于活动状态,但根据我的经验,它只需要 15 分钟)。请参阅以 Namecheap 为例的屏幕截图:
6.转到该SSL/TLS部分并在该部分下Edge Certificates启用“始终使用 HTTPS”功能。现在所有使用方案“http”的请求都应该重定向到“https”
奖励 1:如果用户仅输入example.com或www.example.com仅创建页面规则以将这些请求转发到您的安全 url,则还转发没有方案或 www 的请求。为此,请转到“页面规则”部分并点击“创建页面规则”按钮。输入应该匹配的 url 并添加Forwarding URL带有状态代码的设置301 - Permanent Redirect。在最后输入目标网址,如下所示,$1以使其正常工作。点击“保存并部署”,您就可以开始了。有关更多详细信息,请查看此处的“高级转发选项”部分(请记住,您可能需要清除缓存才能查看更改)。看截图:
奖励 2:您购买了另一个域,只想将其重定向到您的安全主域。比如你买了fiveexample.com,并5example.com和要重定向5example.com总是https://www.fiveexample.com不管用户输入关于5example.com如www.5example.com,http://5example.com甚至https://www.5example.com即使你的第二个域没有任何SSL。Cloudflares 页面规则在这里也是一个解决方案。只需按照第二个域的步骤 1-5(但在步骤 4 中您不需要 heroku dns 目标)。在您按照支持所有转发的步骤之后,为您的第二个域添加这三个页面规则。也适用于.app域(请记住,您可能需要清除缓存才能查看更改)。看截图
如果请求来自 HTTP,您需要将代码添加到 Node.js 应用程序以将请求重定向到 HTTPS 版本。
根据您使用的框架或工具,这个想法很简单:
对于任何人来到这篇文章,我遇到了这个问题,并发现我按照这个顺序编写代码,这搞砸了事情:
app.use(express.static('build'));
app.use((req, res, next) => {
if (req.header('x-forwarded-proto') !== 'https') {
res.redirect(`https://${req.header('host')}${req.url}`)
} else {
next();
}
});
Run Code Online (Sandbox Code Playgroud)
一旦我移动了express.static('build')下面发送app.use方法,一切正常!
如果你正在开发creat-react-app并且碰巧用来create-react-app-buildpack部署到Heroku(我很懒...)
您可以在static.json文件中指定以下内容
{
"https_only": true
}
Run Code Online (Sandbox Code Playgroud)
https://github.com/mars/create-react-app-buildpack#user-content-https-only
| 归档时间: |
|
| 查看次数: |
22915 次 |
| 最近记录: |