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

如何为Nginx反向代理后的Keycloak启用HTTPS

配置Keycloak + Nginx启用HTTPS方案

HTTPS的处理完全交给Nginx即可,Keycloak只需要做少量配置来识别反向代理的HTTPS请求,具体步骤如下:

1. 修改Nginx配置

新增HTTPS监听规则,并把所有HTTP请求重定向到HTTPS,替换以下配置中的SSL证书路径为你已有的证书文件路径:

# 重定向HTTP到HTTPS
server {
    listen 80;
    server_name docsbot.agency;
    return 301 https://$host$request_uri;
}

# HTTPS服务配置
server {
    listen 443 ssl;
    server_name docsbot.agency;

    # 替换为你的SSL证书路径
    ssl_certificate /path/to/your/docsbot.agency.crt;
    ssl_certificate_key /path/to/your/docsbot.agency.key;

    # 可选:添加SSL优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 明确设置为https,让Keycloak识别外部请求协议
        proxy_set_header X-Forwarded-Proto https;
    }
}

修改完成后,重启Nginx使配置生效:

sudo nginx -s reload

2. 调整Keycloak启动命令

需要添加环境变量告诉Keycloak它运行在反向代理之后,且外部访问使用HTTPS,修改后的启动命令如下:

sudo docker run -d -p 8000:8080 \
    -e KC_BOOTSTRAP_ADMIN_USERNAME=admin \
    -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
    -e KC_PROXY=edge \
    -e KC_HOSTNAME=docsbot.agency \
    -e KC_HOSTNAME_PORT=443 \
    -e KC_HOSTNAME_STRICT_HTTPS=true \
    quay.io/keycloak/keycloak:26.0.7 start-dev
  • KC_PROXY=edge:让Keycloak信任反向代理发送的X-Forwarded-*头信息
  • KC_HOSTNAME和KC_HOSTNAME_PORT:指定外部访问的域名和端口
  • KC_HOSTNAME_STRICT_HTTPS=true:强制Keycloak生成HTTPS格式的内部链接

3. 验证配置

重启Keycloak容器后,访问https://docsbot.agency,应该能正常进入Keycloak管理界面,且浏览器地址栏显示安全的HTTPS标识。

内容的提问来源于stack exchange,提问作者Joker-11011

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 02:52:15