node.js - 如何在 stunnel 后面的 node.js/connect 应用程序中设置 req.connection.proxySecure

标签 node.js stunnel node.js-connect

我们有一个 node.js/express 应用程序位于 stunnel 后面,用于 ssl 终止。我不知道如何强制保护 session cookie。查看 session 中间件源代码:

    // only send secure session cookies when there is a secure connection.
    // proxySecure is a custom attribute to allow for a reverse proxy
    // to handle SSL connections and to communicate to connect over HTTP that
    // the incoming connection is secure.
    var secured = cookie.secure && (req.connection.encrypted || req.connection.proxySecure);
    if (secured || !cookie.secure) {
      res.setHeader('Set-Cookie', cookie.serialize(key, req.sessionID));
    }

我显然必须将 req.connection.proxySecure 设置为 true,但我不知道该怎么做。看来 stunnel 应该“通过 HTTP”进行通信,但 stunnel 无法设置 header 。所以我很茫然。我应该尝试在 session 中间件之前通过中间件的自定义位在本地设置它,还是在某处的连接配置变量中设置它?

感谢您的帮助

最佳答案

确保代理正在设置 X-Forwarded-Proto: https header 。然后,您必须将 proxy:true 配置参数添加到 session 中间件。

关于node.js - 如何在 stunnel 后面的 node.js/connect 应用程序中设置 req.connection.proxySecure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14553310/

相关文章:

JavaScript - 如何在扩展错误时获取子类名称

javascript - 如何用jade和webpack用热重载编码HTML

javascript - 使用 Telnet 的 Node.js 客户端和服务器游戏

java - 为什么拒绝连接到本地主机?

node.js - 出现错误 : connect ECONNREFUSED 127. 0.0.1:3306

javascript - 这是什么JS设计模式?

mongodb - nodejs/mongodb,删除整个集合

django - 升级到 Yosemite 后 Stunnel 不再有效

python - 使用 stunnel 建立与 DUKASCOPY 的连接

node.js - Express 3、Apache 代理和基本路径