Kong后面的密钥斗篷和奇怪的重定向

时间:2019-03-14 14:11:41

标签: kubernetes reverse-proxy keycloak kong kubernetes-helm

设置:

  • minikube版本:v0.27.0
  • Kong(安全安装稳定版/ kong)/ 1.0.2版
  • Keycloak(安全安装稳定版/ keycloak)/ 4.8.3.Final版本

我为我的“ hello.local”有一个自签名的SSL证书。

我需要实现的目标:在“ https://hello.local/”后面的Kong后面隐藏密钥库。

我的步骤:

1)新鲜minikube

2)按照以下值安装带有头盔的Keycloak:yaml:

keycloak:
    basepath: ""
    replicas: 1
    ...
    extraEnv: |
      - name: PROXY_ADDRESS_FORWARDING
        value: "true"

(这将创建服务auth-keycloak-http

3)按照以下values.yaml头盔安装Kong:

replicaCount: 1
admin:
  ingress:
    enabled: true
    hosts: ['hello.local']
proxy:
  type: LoadBalancer 
  ingress:
    enabled: true
    hosts: ['hello.local']
    tls:
      - hosts:
        - hello.local
        secretName: tls-certificate
    annotations:
      kubernetes.io/ingress.class: "nginx"
      nginx.ingress.kubernetes.io/rewrite-target: /
      nginx.ingress.kubernetes.io/ssl-passthrough: "true"
  tls:
    enabled: true
postgresql:
...

4)我为Kong设置了服务和路线

服务:

Protocol: http
Host: auth-keycloak-http
Port: 80

路线:

Hosts: hello.local 

此后,我可以打开“ https://hello.local”,并可以从Keycloak查看欢迎页面,在该页面上单击管理控制台,然后在浏览器中重定向到“ https://hello.local:8443/admin/master/console/”。因此,我们此时不应使用其他端口进行重定向。

如果PROXY_ADDRESS_FORWARDINGtrue,则具有2个docker映像(Keycloak + Kong)的设置将正常工作。

如何使Keycloak(头盔图表)在kubernetes集群中的Kong(头盔图表)之后按预期工作,而无需重定向?

这在github issue 1github issue 2github issue 3中进行了讨论。另外,类似问题on stackoverflow

1 个答案:

答案 0 :(得分:1)

似乎,有必要在keycloak舵图的values.yaml中设置以下环境变量:

...
  extraEnv: |
    - name: KEYCLOAK_HTTP_PORT
      value: "80"
    - name: KEYCLOAK_HTTPS_PORT
      value: "443"
    - name: KEYCLOAK_HOSTNAME
      value: example.com
...

所有这些都是必需的,之后,重定向将正常工作。