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)
README 是一个好朋友 - https://hub.docker.com/r/jboss/keycloak/:
设置 TLS(SSL)
Keycloak 映像允许您指定用于服务 HTTPS 的私钥和证书。在这种情况下,您需要提供两个文件:
Run Code Online (Sandbox Code Playgroud)tls.crt - a certificate tls.key - a private key这些文件需要安装在 /etc/x509/https 目录中。该映像会自动将它们转换为 Java 密钥库并重新配置 Wildfly 以使用它。
但这只是 Keycloak TLS 容器配置。您还使用 Traefik,因此您可能需要在 Traefik 容器中配置 TLS - 这取决于您的配置。