【问题标题】:Running Keystone.js app over https on Heroku在 Heroku 上通过 https 运行 Keystone.js 应用程序
【发布时间】:2016-02-06 21:57:26
【问题描述】:

我有一个基于 Keystone.js CMS 的 web 应用程序,用于 node.js,我将在 Heroku 上使用自定义域进行部署。我希望整个应用程序默认在 https 上运行,并且不允许任何 http 连接。我环顾四周,似乎无法找到关于解决此问题的最佳方法的明确答案。通常,即对于 Rails 应用程序,我只需为我的自定义域购买 Heroku 附加 SSL 证书,并将我的 DNS 指向 Heroku 配置的 SSL 端点。在我的应用程序中,我会将所有连接配置为默认使用 HTTPS。

对于节点实例(特别是 Keystone.js 实例),我有点不清楚。我可以像上面一样进行相同的过程,购买一个 SSL 插件并将我的 DNS 指向 Heroku SSL 端点吗?我需要在基本节点代码中做任何事情来支持吗?以及如何强制执行 https 而不允许 http?

node 和 keystone 新手,非常感谢任何帮助!

【问题讨论】:

    标签: node.js ssl heroku https keystonejs


    【解决方案1】:

    使用express-sslify

    我把它放在我的routes/index.js 中,因为我从那里导出的函数接收到对 express 应用程序的引用。

    您需要做的就是告诉 express 使用 sslify,但您可能不想为开发启用它。

    从七月开始,Heroku defaults NODE_ENV to production 这样你就可以了

    // Setup Route Bindings
    exports = module.exports = function(app) {
    
        if (process.env.NODE_ENV === 'production') {
            var enforce = require('express-sslify');
            app.use(enforce.HTTPS({ trustProtoHeader: true }));
        }
    
        // Declare your views
    };
    

    这将向尝试通过纯 HTTP 访问您的应用的任何人发送 301。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 2021-01-16
      • 2017-11-07
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      相关资源
      最近更新 更多