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

Keycloak生产模式启动报错:未提供密钥材料,如何配置证书?

Keycloak 20.0.5生产模式HTTPS配置解决方案

生产模式下Keycloak强制启用HTTPS,必须提供有效的密钥/证书才能启动,以下是两种可行的配置方案:

一、使用已有的Let's Encrypt证书

你的主机已配置Let's Encrypt证书,可直接用于Keycloak,步骤如下:

  1. 定位Let's Encrypt证书文件:通常存放在/etc/letsencrypt/live/yourdomain.com/目录下,核心文件为:
    • fullchain.pem:包含服务器证书及中间证书链
    • privkey.pem:服务器私钥
  2. 确保Keycloak进程拥有读取这些文件的权限(可将文件复制到Keycloak目录,或调整文件权限)
  3. 启动时指定证书和密钥路径:
    bin/kc.sh start --hostname myhostname.com --https-certificate-file /etc/letsencrypt/live/myhostname.com/fullchain.pem --https-certificate-key-file /etc/letsencrypt/live/myhostname.com/privkey.pem
    
    若想后续启动无需重复参数,可先执行构建命令:
    bin/kc.sh build --hostname myhostname.com --https-certificate-file /path/to/fullchain.pem --https-certificate-key-file /path/to/privkey.pem
    bin/kc.sh start
    

二、用OpenSSL生成自签证书(仅测试环境适用)

如果只是测试生产模式,可快速生成自签证书:

  1. 执行以下命令生成密钥对和证书(Common Name需填写你的myhostname.com):
    openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -nodes
    
  2. 启动Keycloak时指定生成的文件:
    bin/kc.sh start --hostname myhostname.com --https-certificate-file ./cert.pem --https-certificate-key-file ./key.pem
    

注意事项

  • 生产环境务必使用Let's Encrypt这类受信任CA颁发的证书,自签证书会导致客户端(浏览器、应用)触发安全警告
  • 确保证书和密钥文件权限正确,Keycloak运行用户需具备读取权限,避免加载失败
  • 若Keycloak前端部署反向代理(如Nginx、Apache),可由代理处理HTTPS,Keycloak以HTTP运行,需添加--proxy edge参数,并确保代理传递X-Forwarded-Proto等正确头信息

内容的提问来源于stack exchange,提问作者Dima

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:45:30