ssl - 为 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.crt
和your-certificate.cer
?我尝试将 ca 请求上传到 CAcert.org,但他们没有为 localhost DNS 创建证书。
解决方案
答案 1- 如果您在本地机器上测试这个,您可以使用localhost
,但如果您正在使用IP-address
或host 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
推荐阅读
- ios - Swift:在 iOS 上使用 Google Places 并获得 -180 作为纬度
- git - 查看具有特定文件扩展名的文件已更改 (Git)
- php - WooCommerce 根据特定的运输方式更改 BACS 订单的状态
- python - 查找设定范围内的最大随机值,python
- c++ - Vulkan 实例创建失败
- r - 使用 R 从数据框中提取数据并将数据存储在未知数量的新列中
- python - 存储和读取海量 3D 数据集的节省空间的方法?
- python - 是否可以使用套接字发送 HTTP/2 GET 请求?
- javascript - 为什么 addEventListener 没有在点击时触发该方法?
- sas - SAS Enterprise Guide – 拆分/堆叠列