从Keycloak下载并导入X.509客户端证书

时间:2019-01-17 13:19:19

标签: keycloak x509

我在本地主机上设置了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信任的客户端证书。

我做错了什么?还是当前的密钥斗篷尚不支持此过程?

1 个答案:

答案 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>