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

在DigitalOcean Kubernetes部署Keycloak后,遇HTTPS要求如何访问主领域?

Keycloak管理控制台提示「Https required」的解决方法

一、测试环境临时绕开HTTPS要求(仅限测试,禁止生产使用)

Keycloak默认强制管理控制台用HTTPS访问,测试时可通过修改启动参数或环境变量关闭限制:

  • 在K8s的Deployment中添加两个环境变量:
    • KEYCLOAK_HTTP_ENABLED: "true":启用HTTP访问
    • KEYCLOAK_HOSTNAME_STRICT: "false":关闭主机名严格校验
  • 用Helm部署的话,在values.yaml里配置:
extraEnvVars:
  - name: KEYCLOAK_HTTP_ENABLED
    value: "true"
  - name: KEYCLOAK_HOSTNAME_STRICT
    value: "false"

执行helm upgrade keycloak bitnami/keycloak -f values.yaml重新部署,之后就能通过HTTP的外部IP正常访问管理控制台了。

二、生产环境配置HTTPS访问(推荐方案)

1. 配置Ingress并启用TLS

通过Kubernetes Ingress暴露Keycloak,并配置HTTPS证书(推荐用Cert-Manager自动签发免费证书),示例Ingress配置文件:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: keycloak-ingress
  annotations:
    cert-manager.io/cluster-issuer: "letsencrypt-prod" # 替换为你的ClusterIssuer名称
spec:
  tls:
  - hosts:
    - keycloak.yourdomain.com # 替换为你的自定义域名
    secretName: keycloak-tls # 证书会自动存储到这个Secret中
  rules:
  - host: keycloak.yourdomain.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: keycloak-service # 替换为你的Keycloak Service名称
            port:
              number: 8080

执行kubectl apply -f ingress.yaml应用配置。

2. 配置Keycloak主机名参数

修改Keycloak的环境变量,指定域名,确保生成的链接都是HTTPS格式:

  • 在Deployment中添加KEYCLOAK_HOSTNAME: "keycloak.yourdomain.com"
  • Helm部署的话,在values.yaml里添加:
extraEnvVars:
  - name: KEYCLOAK_HOSTNAME
    value: "keycloak.yourdomain.com"

重新部署后,通过https://keycloak.yourdomain.com访问Keycloak,即可正常进入master领域的管理控制台。

内容的提问来源于stack exchange,提问作者I.vignesh David

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 08:00:28