如何使用节点和 ProxyPass/ProxyPassReverse (Httpd/Amazon linux) 发送安全 cookie

如何使用节点和 ProxyPass/ProxyPassReverse (Httpd/Amazon linux) 发送安全 cookie

我还是个新手,但我正在使用 Amazon Linux 映像和 httpd 来加密和解密 SSL 请求。然后我将这些消息代理到运行在端口 3001 上的 NodeJS 应用程序。为此,我在/etc/httpd/conf.d/ssl.conf

<VirtualHost _default_:443>
...
    ProxyPreserveHost On
    ProxyPass / http://*IP*:3001/
    ProxyPassReverse / http://*IP*:3001/
</VirtualHost>

公共网站运行良好。但是,当我尝试使用以下内容设置安全 cookie 时...

错误:无法通过未加密的连接发送安全 cookie

我在节点中像这样设置了我的 cookie......

const CALLBACK = function(ctx, next) {
    ...
    ctx.cookies.set(
        COOKIE_NAME,
        response.data.id_token,
        {
          secure: true,
          domain: COOKIE_DOMAIN
        },
    );
}

我也尝试将其添加到 ssl.conf...

RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"

但它也没有帮助,有人知道我该如何让它发挥作用吗?

答案1

我在一个问题中发现了这一点,它对我有用(虽然我现在找不到这个问题)......

/etc/httpd/conf.d/ssl.conf
... 
Header edit Set-Cookie ^(.*)$ $1;Secure

然后我只是停止将其设置为节点中的安全,一切似乎都运行正常。

相关内容