我在本地主机上设置了Keycloak 4.8.2-Final,并按照https://www.keycloak.org/docs/latest/server_admin/index.html#_x509上的文档中所述启用了SSL。
服务器可以启动,但是我无法在localhost:8443上打开服务器页面
openssl s_client -connect 127.0.0.1:8443
由于SSL错误代码42
4566025836:error:1401E412:SSL routines:CONNECT_CR_FINISHED:sslv3 alert bad certificate:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.230.1/libressl-2.6/ssl/ssl_pkt.c:1205:SSL alert number 42), which means that the client certificate problem.
但是我的想象是服务器应该将我重定向到登录页面。登录后,服务器应生成客户端证书,并要求我下载证书并将其导入到我的浏览器中。之后,我应该无需任何进一步的身份验证即可连接到服务器,因为我已经拥有Keycloak信任的客户端证书。
我做错了什么?还是当前的密钥斗篷尚不支持此过程?
答案 0 :(得分:0)
根据文档,在用户输入用户名和密码后,不支持下载和导入证书。前两个步骤始终是:
客户端通过SSL / TLS通道发送身份验证请求 在SSL / TLS握手期间,服务器和客户端交换其x.509 / v3证书
因此,standalone.xml中的配置仅应为“ REQUESTED”。在没有真正理解的情况下,我将其更改为“ REQUIRED”,该要求始终要求提供客户证书。如果客户端没有,则失败。使用“ REQUESTED”,客户端证书只是可选的。
<subsystem xmlns="urn:jboss:domain:undertow:4.0">
....
<server name="default-server">
<https-listener name="default"
socket-binding="https"
security-realm="ssl-realm"
verify-client="REQUESTED"/>
</server>
</subsystem>