You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JHipster云端部署后Keycloak报错:未找到有效密钥

解决JHipster应用部署云端后Keycloak的"No active keys found"错误

首先,咱们先拆解一下这个错误提示:No active keys found, using failsafe provider, please login to admin console to add keys. Clustering is not supported. 它的核心意思是你的云端Keycloak实例找不到可用的加密密钥,只能用临时的故障安全密钥凑数——这在生产环境肯定是不行的,而且还会导致集群功能无法使用。结合你已经修复了redirect_url的问题,咱们从以下几个方向排查解决:

1. 手动在Keycloak控制台添加有效密钥

登录你的云端Keycloak管理后台,找到你的JHipster应用对应的Realm,进入Realm Settings -> Keys标签页:

  • 如果这里看不到状态为Active的密钥(比如RS256签名密钥),切换到Providers子标签
  • 点击Add provider,选择合适的密钥类型(推荐RSA,通用且安全)
  • 填写密钥名称,设置Priority为较高的值(比如100),然后点击Save生成新的密钥对
  • 生成后回到Keys主标签,确认新密钥的状态是Active,如果不是,点击密钥条目右侧的Set active按钮

2. 确保Keycloak配置了持久化数据库

本地运行的Keycloak默认用H2内存数据库,重启后数据会丢失,但你可能没注意到——因为本地开发很少重启Keycloak。但云端部署时,如果Keycloak还是用内存数据库,每次重启(比如云端自动扩容、重启实例)后,之前生成的密钥就会消失,自然会触发这个错误。

解决方法:

  • 给Keycloak配置一个持久化数据库(比如PostgreSQL、MySQL),确保数据库连接信息正确(URL、用户名、密码)
  • 确认Keycloak启动时能正常连接到数据库,并且已经初始化了所有必要的表(Keycloak第一次启动时会自动创建表,前提是数据库用户有建表权限)

3. 核对JHipster应用的生产环境配置

检查你云端应用的application-prod.yml(或对应的配置文件)里的Keycloak相关配置:

keycloak:
  auth-server-url: https://your-cloud-keycloak-url/auth
  realm: your-realm-name
  resource: your-client-id
  credentials:
    secret: your-client-secret
  ssl-required: external

重点确认:

  • auth-server-url是云端Keycloak的公网地址,不是本地的http://localhost:8080/auth
  • realm和resource(客户端ID)和Keycloak控制台里的完全一致
  • credentials.secret和Keycloak客户端配置里的Credentials标签下的Secret完全匹配

4. 检查Keycloak的启动日志

查看云端Keycloak的启动日志,看看有没有数据库连接失败、文件权限不足或者初始化错误——这些都可能导致Keycloak无法生成或加载密钥。比如:

  • 如果日志里有数据库连接超时的错误,说明你的Keycloak实例无法访问配置的持久化数据库
  • 如果有文件权限错误,可能是Keycloak无法写入密钥存储文件(如果用了文件存储的密钥提供者)

按照上面的步骤逐一排查,应该能解决这个密钥缺失的问题。

内容的提问来源于stack exchange,提问作者Michael Buron Yuen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:17:36