如何在docker的keycloak中添加SSL

Tim*_*ame 7 ssl certificate amazon-web-services docker keycloak

我在将 SSL 证书添加到在 docker 上运行的 Keycloak 时遇到问题。我通过负载均衡器从 AWS EC2 获得了 SSL 证书,但不知道如何将其添加到 docker 上的 Keycloak 中。我正在搜索谷歌,但尚未找到任何结果。

另外,当我访问https://stackoverflow.com之类的页面时,ssl 工作正常。但是当我尝试打开https://stackoverflow.com:8443(因为 8443 是 Keycloak 的端口)时,它不起作用。

Keycloak的Dockerfile代码如下:

FROM jboss/keycloak:4.6.0.Final

WORKDIR /opt/jboss/keycloak

COPY realm-export.json /opt/jboss/keycloak/

EXPOSE 8443

ENTRYPOINT [ "/opt/jboss/tools/docker-entrypoint.sh" ]
CMD ["-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "-Dkeycloak.import=realm-export.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING"]
Run Code Online (Sandbox Code Playgroud)

这是 docker-compose.yml 文件:

version: '2'

services:
  keycloak:
    build: "./Keycloak + actibook-app client import"
    depends_on:
      - keycloak-postgres
    environment:
      - KEYCLOAK_USER=${KEYCLOAK_USER}
      - KEYCLOAK_PASSWORD=${KEYCLOAK_PASSWORD}
      - KEYCLOAK_IMPORT=${KEYCLOAK_IMPORT}
      - POSTGRES_USER=${KEYCLOAK_DATABASE_USER}
      - POSTGRES_PASSWORD=${KEYCLOAK_DATABASE_PASSW}
      - POSTGRES_PORT_5432_TCP_ADDR= keycloak-postgres
    ports:
      - "8443:8443"
    labels:
      - "traefik.frontend.passHostHeader=true"

  traefik:
    build: ./traefik
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped
Run Code Online (Sandbox Code Playgroud)

Jan*_*raj 3

README 是一个好朋友 - https://hub.docker.com/r/jboss/keycloak/

设置 TLS(SSL)

Keycloak 映像允许您指定用于服务 HTTPS 的私钥和证书。在这种情况下,您需要提供两个文件:

tls.crt - a certificate
tls.key - a private key
Run Code Online (Sandbox Code Playgroud)

这些文件需要安装在 /etc/x509/https 目录中。该映像会自动将它们转换为 Java 密钥库并重新配置 Wildfly 以使用它。

但这只是 Keycloak TLS 容器配置。您还使用 Traefik,因此您可能需要在 Traefik 容器中配置 TLS - 这取决于您的配置。