14.7. 红帽在容器中以 FIPS 模式构建 Keycloak 服务器
如果您希望红帽以 FIPS 模式在 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 模式执行的主机时,红帽构建的 Keycloak 容器镜像将仅在 fips 模式中自动处于 fips 模式。但是,请确保红帽构建的 Keycloak 容器也使用 BCFIPS jars (而不是 BC jars)并在启动时正确选项。
因此,最好在容器中运行 红帽构建的 Keycloak 来构建自己的容器镜像,并调整 使用 BCFIPS 等。
例如,您可以在当前目录中创建子目录 并添加
:
- 如上所述,BC FIPS jar 文件
-
自定义密钥存储文件 - 名为
keycloak-fips.keystore.bcfks
-
安全文件
kc.java.security
带有为 SAML 添加的供应商
然后,在当前目录中创建 Dockerfile
类似如下:
Dockerfile:
FROM registry.redhat.io/rhbk/keycloak-rhel9:22 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:22 COPY --from=builder /opt/keycloak/ /opt/keycloak/ ENTRYPOINT ["/opt/keycloak/bin/kc.sh"]
然后,构建 FIPS 优化的 docker 镜像并启动它,如 容器 中的 Running Red Hat build of Keycloak 所述。这些步骤要求您使用启动镜像时所描述的参数。