一、问题描述
keycloak 初始化admin后,出现HTTPS required 问题,后端也提示
[org.keycloak.events] (executor-thread-7) type=LOGIN_ERROR, realmId=db46046f-b499-40fd-a1e4-94289fcf7a65, clientId=null, userId=null, ipAddress=192.169.1.104, error=ssl_required
出现 ssl_required问题。
查阅官网后,官网说 start-dev 模式默认不启用https,但是我的却有https校验,一头雾水。于是决定生成自制证书,让keycloak可以被https访问到。
二、解决问题
2.1 环境描述
linux : centos-7
keycloak: 18.0.1
2.2 生成证书
# **生成私钥**:
openssl genpkey -algorithm RSA -out privateKey.pem -pkeyopt rsa_keygen_bits:2048
#这将生成一个 RSA 私钥,并将其保存在 `privateKey.pem` 文件中。
# **生成证书签名请求 (CSR)**:
openssl req -new -key privateKey.pem -out certificate.csr
#在这个步骤中,您需要提供一些证书信息,如国家、省份、城市、组织等。
# **生成自签名证书**:
openssl x509 -req -days 365 -in certificate.csr -signkey privateKey.pem -out certificate.crt
如果遇到问题,同时推荐使用 mkcert 工具生成证书
2.3 keycloak配置证书
在 ${keycloak}/conf/keycloak.conf 配置文件中设置
https-certificate-file=/user/project/keycloak-18.0.2/cert/public.pem
https-certificate-key-file=/user/project//keycloak-18.0.2/cert/private-key.pem
2.4 keycloak启动
这样,https就配置成功了
2.5 可能遇到的问题
1、如果浏览器不能访问,请查看是不是防火墙问题。
2、如果证书有问题,可以使用mkcert生成。
3、如果在start模式下遇到/admin/master/console 空白页,F12控制台报错 frame-src如下,
这个问题调试了会儿,发现是我的hostname配置问题,我的hostname配置了https://127.0.0.1:8443,多了个https,应该配置为127.0.0.1:8443
至此,完工~