11FROM nginx:latest
22
33# or 4096 key length
4- ARG CERT_KEY_LENGTH=2048
4+ ARG CERT_KEY_LENGTH=2048
5+ ARG ENABLE_FIPS_MODE=false
6+ ARG OPENSSL_CIPHER_STRING=TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
7+ ARG OPENSSL_GROUPS=P-384:P-256:P-521
58
69# Copy configuration
710COPY Nginx/config/nginx.conf /etc/nginx/nginx.conf
@@ -11,11 +14,30 @@ COPY Nginx/config/start-nginx.sh /start-nginx.sh
1114COPY Certificates/${CERT_KEY_LENGTH}/cert.pem /etc/nginx/certs/cert.pem
1215COPY Certificates/${CERT_KEY_LENGTH}/key.pem /etc/nginx/certs/key.pem
1316
17+ # Configure OpenSSL for FIPS-compliant cipher suites if $ENABLE_FIPS_MODE
18+ RUN if [ "$ENABLE_FIPS_MODE" = "true" ]; then \
19+ echo "=== FIPS MODE ENABLED - Configuring OpenSSL ===" && \
20+ cat /etc/ssl/openssl.cnf && \
21+ echo "" >> /etc/ssl/openssl.cnf && \
22+ echo "openssl_conf = openssl_init" >> /etc/ssl/openssl.cnf && \
23+ echo "[openssl_init]" >> /etc/ssl/openssl.cnf && \
24+ echo "ssl_conf = ssl_sect" >> /etc/ssl/openssl.cnf && \
25+ echo "[ssl_sect]" >> /etc/ssl/openssl.cnf && \
26+ echo "system_default = system_default_sect" >> /etc/ssl/openssl.cnf && \
27+ echo "[system_default_sect]" >> /etc/ssl/openssl.cnf && \
28+ echo "CipherString = $OPENSSL_CIPHER_STRING" >> /etc/ssl/openssl.cnf && \
29+ echo "Groups = $OPENSSL_GROUPS" >> /etc/ssl/openssl.cnf && \
30+ echo "=== FIPS Configuration Applied ===" && \
31+ tail -15 /etc/ssl/openssl.cnf; \
32+ else \
33+ echo "=== FIPS MODE DISABLED ===" ; \
34+ fi
35+
1436# Make the script executable
1537RUN chmod +x /start-nginx.sh
1638
17- # Expose port 8080 for HTTPS traffic
18- EXPOSE 8080
39+ # Expose port 5000 for HTTPS traffic
40+ EXPOSE 5000
1941
2042# Run the startup script
2143CMD ["/start-nginx.sh" ]
0 commit comments