@@ -65,8 +65,12 @@ FROM gcr.io/distroless/java-base-debian12:debug AS ssl
6565# the Zulu JDK and the distroless java-base image no longer ship these roots.
6666# jlink copies cacerts out of java.base.jmod, so the cleanup above (before jlink) does not
6767# reach /jre. The distroless store uses subject DN aliases and has no keytool.
68+ # The PEM bundle in the final image comes from BASE_IMAGE and also has the eMudhra roots.
69+ FROM ${BASE_IMAGE} AS base-ca
70+
6871FROM jre AS emudhra-clean
6972COPY --from=ssl /etc/ssl/certs/java /etc/ssl/certs/java
73+ COPY --from=base-ca /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
7074RUN for entry in \
7175 "/jre/lib/security/cacerts|emsigneccrootcag3 [jdk]" \
7276 "/jre/lib/security/cacerts|comodoaaaca [jdk]" \
@@ -79,6 +83,16 @@ RUN for entry in \
7983 echo "Certificate alias '$alias' not found in $store; skipping deletion." ; \
8084 fi; \
8185done
86+ # Drop every eMudhra root (emSign ECC Root CA - C3/G3, emSign Root CA - C1/G1) from the PEM bundle,
87+ # matched by subject.
88+ RUN mkdir /tmp/ca && cd /tmp/ca \
89+ && awk '/-----BEGIN CERTIFICATE-----/{n++} n{print > sprintf("c%04d.pem", n)}' /etc/ssl/certs/ca-certificates.crt \
90+ && for f in c*.pem; do \
91+ if openssl x509 -in "$f" -noout -subject | grep -qi 'eMudhra' ; then \
92+ echo "Removing: $(openssl x509 -in " $f" -noout -subject)" ; rm "$f" ; \
93+ fi; \
94+ done \
95+ && cat c*.pem > /etc/ssl/certs/ca-certificates.crt
8296
8397FROM debian:bookworm-slim As builder
8498RUN apt update && apt install -y libjemalloc-dev
@@ -118,6 +132,7 @@ COPY --from=jre /jre /usr/lib/jvm/zulu-11-slim
118132# TEMP: eMudhra distrust, see emudhra-clean stage above
119133COPY --from=emudhra-clean /jre/lib/security/cacerts /usr/lib/jvm/zulu-11-slim/lib/security/cacerts
120134COPY --from=emudhra-clean /etc/ssl/certs/java/cacerts /etc/ssl/certs/java/cacerts
135+ COPY --from=emudhra-clean /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
121136
122137RUN ln -s /usr/lib/jvm/zulu-11-slim/bin/java /usr/bin/java
123138RUN ln -s /usr/lib/jvm/zulu-11-slim/bin/jfr /usr/bin/jfr
0 commit comments