首页 > 解决方案 > 为 keycloak-server 启用-ssl-https

问题描述

我在独立配置中使用 keycloak-8.0.1。我正在尝试为在我的测试机器 (ABCD) 上运行的 Keycloak 服务器启用 SSL/Https,将从机器 (XYZP) 请求令牌请求。

(生成的令牌会不会有任何 CORS/CSRF 问题,看起来是的?并且通过 SSL 的 Keycloak 是否有助于解决这个问题?)不过我需要启用 SSL。

所以继续使用https://www.keycloak.org/docs/latest/server_installation/#enabling-ssl-https-for-the-keycloak-server

步骤 1 运行命令:

keytool -genkey -alias localhost -keyalg RSA -keystore keycloak.jks -validity 10950

...两个文件server.key并被keycloak.jks创建。问题:我应该localhost在这里使用还是更好地使用A.B.C.D我的测试机器的 IP?尽管文档上说localhost是这样,但还是照做了。

步骤 2 生成证书请求:

$ keytool -certreq -alias yourdomain -keystore keycloak.jks > keycloak.careq

我还可以使用localhost/生成证书请求A.B.C.D

第 3 步:将上述步骤中创建的证书请求发送到 CA,并从 CA( root.crt) 下载根证书并使用命令导入:

keytool -import -keystore keycloak.jks -file root.crt -alias root

我是否必须跳过这一步localhost,如果不是,如何生成 root.crt localhost

第 4 步:最后一步是将 CA 生成的证书导入密钥库

$ keytool -import -alias yourdomain -keystore keycloak.jks -file your-certificate.cer

问题:现在我在第一步“server.key”中只生成了两个文件keycloak.jks ,我应该从哪里得到root.crtyour-certificate.cer?我尝试将 ca 请求上传到 CAcert.org,但他们没有为 localhost DNS 创建证书。

我已经浏览了很多链接link1link2link3 link4并且感到困惑请帮助。

标签: sslkeycloak

解决方案


答案 1- 如果您在本地机器上测试这个,您可以使用localhost,但如果您正在使用IP-addresshost name

再次回答 3,如果您的测试只能使用自签名证书,则无需前往广告证书颁发机构。

答案 4- 因此,对于 localhost 或您的机器 IP,在keytool

keytool -genkey -alias initcert -ext san=ip:xxx.xxx.xxx.xx -keyalg  RSA -keystore keycloak.jks-validity 365  -keysize 2048

导出证书

keytool -export -noprompt -trustcacerts -keystore keycloak.jks -alias initcert -file keycloak.cer -storepass changeit

将证书导入客户端机器 Java 密钥库

keytool -import -noprompt -trustcacerts -alias "initcert" -file keycloak.cer -keystore /workspace/tools/jdk/java-1.7.0-openjdk-1.7.0.25.x86_64/jre/lib/security/cacerts

推荐阅读