17.7. 红帽在容器中以 FIPS 模式构建 Keycloak 服务器
当您希望红帽以 FIPS 模式构建 Keycloak 时,您的"主机"也必须使用 FIPS 模式。然后,容器将从父主机"inherit" FIPS 模式。详情请查看 RHEL 文档中的这个部分。https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/9/html/security_hardening/using-the-system-wide-cryptographic-policies_security-hardening#enabling-fips-mode-in-a-container_using-the-system-wide-cryptographic-policies
当从 FIPS 模式下从主机执行时,Red Hat build of Keycloak 容器镜像将自动处于 fips 模式。但是,请确保红帽构建的 Keycloak 容器也使用 BCFIPS jars (而不是 BC jar)和启动时正确的选项。
有关此问题,最好构建自己的容器镜像,如 在容器中运行红帽构建的 Keycloak 所述,并调整 它以使用 BCFIPS 等。
例如在当前目录中,您可以创建子目录 文件
并添加:
- 如上所述,BC FIPS jar 文件
-
自定义密钥存储文件 - 例如
keycloak-fips.keystore.bcfks
-
安全文件
kc.java.security
,为 SAML 添加了供应商(OpenJDK 21 或更新版本 OpenJDK 17 不需要)
然后,在当前目录中创建 Containerfile
,如下所示:
Containerfile :
FROM registry.redhat.io/rhbk/keycloak-rhel9:26 as builder ADD files /tmp/files/ WORKDIR /opt/keycloak RUN cp /tmp/files/*.jar /opt/keycloak/providers/ RUN cp /tmp/files/keycloak-fips.keystore.* /opt/keycloak/conf/server.keystore RUN cp /tmp/files/kc.java.security /opt/keycloak/conf/ RUN /opt/keycloak/bin/kc.sh build --features=fips --fips-mode=strict FROM registry.redhat.io/rhbk/keycloak-rhel9:26 COPY --from=builder /opt/keycloak/ /opt/keycloak/ ENTRYPOINT ["/opt/keycloak/bin/kc.sh"]
然后,将 FIPS 作为优化的 Docker 镜像构建并启动它,如 容器中运行红帽构建的 Keycloak 所述。这些步骤要求您使用启动镜像时的参数。