@@ -96,15 +96,6 @@ COPY fips/resources/fips_java.policy /usr/share/elasticsearch/config/fips_java.p
96
96
97
97
WORKDIR /usr/share/elasticsearch/config
98
98
99
- ## Add fips specific JVM options
100
- RUN cat <<EOF > /usr/share/elasticsearch/config/jvm.options.d/fips.options
101
- -Djavax.net.ssl.keyStoreType=BCFKS
102
- -Dorg.bouncycastle.fips.approved_only=true
103
- -Djava.security.properties=config/fips_java.security
104
- -Djava.security.policy=config/fips_java.policy
105
- EOF
106
-
107
-
108
99
################################################################################
109
100
# Build stage 2 (the actual Elasticsearch image):
110
101
#
@@ -136,6 +127,10 @@ ENV ELASTIC_CONTAINER=true
136
127
WORKDIR /usr/share/elasticsearch
137
128
138
129
COPY --from=builder --chown=0:0 /usr/share/elasticsearch /usr/share/elasticsearch
130
+ COPY --from=builder --chown=0:0 /fips/libs/*.jar /usr/share/elasticsearch/lib/
131
+ COPY --from=builder --chown=0:0 /opt /opt
132
+
133
+ ENV ES_PLUGIN_ARCHIVE_DIR=/opt/plugins/archive
139
134
ENV PATH=/usr/share/elasticsearch/bin:\$PATH
140
135
ENV SHELL=/bin/bash
141
136
COPY ${bin_dir}/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
@@ -159,6 +154,28 @@ RUN chmod g=u /etc/passwd && \\
159
154
160
155
RUN ln -sf /etc/ssl/certs/java/cacerts /usr/share/elasticsearch/jdk/lib/security/cacerts
161
156
157
+ # Convert cacerts (PKCS12) to BCFKS format using POSIX-compatible shell syntax
158
+ RUN printf "\\n" | jdk/bin/keytool -importkeystore \
159
+ -srckeystore /usr/share/elasticsearch/jdk/lib/security/cacerts \
160
+ -srcstoretype PKCS12 \
161
+ -destkeystore config/cacerts.bcfks \
162
+ -deststorepass passwordcacert \
163
+ -deststoretype BCFKS \
164
+ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider \
165
+ -providerpath lib/bc-fips-1.0.2.5.jar \
166
+ -destprovidername BCFIPS
167
+
168
+
169
+ ## Add fips specific JVM options
170
+ RUN cat <<EOF > /usr/share/elasticsearch/config/jvm.options.d/fips.options
171
+ -Djavax.net.ssl.keyStoreType=BCFKS
172
+ -Dorg.bouncycastle.fips.approved_only=true
173
+ -Djava.security.properties=config/fips_java.security
174
+ -Djava.security.policy=config/fips_java.policy
175
+ -Djavax.net.ssl.trustStore=config/cacerts.bcfks
176
+ -Djavax.net.ssl.trustStorePassword=passwordcacert
177
+ EOF
178
+
162
179
EXPOSE 9200 9300
163
180
164
181
LABEL org.label-schema.build-date="${build_date}" \\
@@ -196,11 +213,6 @@ CMD ["/app/elasticsearch.sh"]
196
213
197
214
USER 1000:0
198
215
199
- COPY --from=builder --chown=0:0 /opt /opt
200
- ENV ES_PLUGIN_ARCHIVE_DIR=/opt/plugins/archive
201
- WORKDIR /usr/share/elasticsearch
202
- COPY --from=builder --chown=0:0 /fips/libs/*.jar /usr/share/elasticsearch/lib/
203
-
204
216
################################################################################
205
217
# End of multi-stage Dockerfile
206
218
################################################################################
0 commit comments