【发布时间】:2022-02-16 15:50:59
【问题描述】:
我正在使用 Node- 和 ExpressJS 构建一个 WebApp。目前我正在尝试使用 keycloak-connect 模块将我的应用程序连接到我们公司的 Keycloak。我按照不同教程中的说明对其进行了配置,并且可以正常工作(至少大部分情况下)。
当我连接到我的 WebApp 时,我收到了 keycloak 登录屏幕,并且登录过程成功(在 keycloak 上创建了会话)。在登录过程和重定向之后,我收到“拒绝访问”错误,并在日志中显示“无法获取授权代码:无法获取本地颁发者证书”。
WebApp 使用有效证书在端口 443 上运行
我已经搜索了所有可以搜索的内容并尝试了以下解决方案:
-- 禁用拒绝未经授权的 TLS --
使用节点环境变量禁用未授权证书的 TLS 拒绝:
- process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
有效,但不是很安全... Log.
-- 添加额外的 CA 证书--
安装 dotenv 模块并在 .env 文件中设置以下环境变量:
- NODE_EXTRA_CA_CERTS='/etc/pki/tls/cert.pem' (& ca-bundle.crt)
使用“require('dotenv').config();”将其包含在 app.js 中,不起作用...还尝试使用 export 将其设置为系统环境变量。
它支持代理,但我也将 express 配置为使用“app.set('trust proxy', true);”信任所有代理。
-- 版本--
节点 - v16.13.1
快递 - ~4.16.1
Keycloak 连接 - ^16.1.1
我在许多不同的页面上都看到过这个问题,但大多数都没有完全解决...如果能找到解决这个问题的方法就好了。
提前致谢! :)
亚尼克
【问题讨论】:
标签: node.js express ssl keycloak