无法获取授权码:错误:证书链中存在自签名证书

3
我正在尝试在浏览器中访问由Keycloak保护的URL - /hello。 该URL由node.js应用程序提供服务。 以下代码引发了此错误:链接。 在执行以下操作序列后会出现此错误:
1)将客户端和用户添加到KeyCloak主域
2)保护express node.js应用程序的URL:
var Keycloak = require('keycloak-connect');

let kcConfig = { 
    clientId: 'test_ui',
    // secret : "d31c4718-12e9-407b-9bf2-cb72734a23f0", 
    public: true,
    serverUrl: https://127.0.0.1/auth,
    resource: "test_ui",
    realm: 'master'
}
var session = require('express-session');
var memoryStore = new session.MemoryStore()

var keycloak = new Keycloak(  {store : memoryStore},  kcConfig);

this.app.use(session({
    secret: 'mySecret',
    // resave: false,
    // saveUninitialized: true,
    store: memoryStore
  }));

this.app.use( keycloak.middleware() );
this.app.get( '/hello', keycloak.protect());

3) 在浏览器中访问受保护的URL,被重定向到Keycloak登录界面,进行身份验证…然后弹出错误。

在Wireshark中看到以下请求序列:

/auth/realms/master/protocol/openid-connect/auth?client_id=test_ui&state=504b250d-8616-4685-8c8d-5032713c883a&redirect_uri=https://127.0.0.1/hello/auth_callback&scope=openid&response_type=code

登录屏幕身份验证后:

/auth/realms/master/login-actions/authenticate?session_code=TwhsWxUig85PFHfiv-31OTHQl3aApD6z0lMdOr8hgDc&execution=d58a2cad-2be2-4797-b35a-d7b606945b14&client_id=test_ui&tab_id=ywQfz51qnM0

我考虑将sslRequired: "none"添加到kcConfig中,但似乎没有效果。 试图使用机密客户端而非公共客户端也无济于事。

package.json的内容:

"express": "4.16.2",
"keycloak-connect" : "4.3.0",
"express-session" : "1.15.6"

使用Keycloak 4.3版本。
问题的原因是什么以及如何修复这个错误?
更新
根据Keycloak邮件列表中的回复,在node.js应用程序中添加process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";,现在出现错误:

无法获取授权码:401:未经授权


无法获取授权码:401:未经授权 - mhvelplund
1个回答

2

如邮件列表所述:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0

运行得非常好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接