我还是个新手,但我正在使用 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
然后我只是停止将其设置为节点中的安全,一切似乎都运行正常。