diff --git a/docker/test/nginx/Dockerfile b/docker/test/nginx/Dockerfile index ecec079..98e073b 100644 --- a/docker/test/nginx/Dockerfile +++ b/docker/test/nginx/Dockerfile @@ -14,6 +14,7 @@ FROM nginx:mainline-alpine COPY nginx.conf /etc/nginx/nginx.conf COPY paths-enabled /etc/nginx/paths-enabled.d +COPY certificates-available /etc/nginx/certificates-available.d COPY --from=cert-builder /tmp/ssl/selfsigned.crt /etc/nginx/ssl/selfsigned.crt COPY --from=cert-builder /tmp/ssl/selfsigned.key /etc/nginx/ssl/selfsigned.key diff --git a/docker/test/nginx/certificates-available/letsencrypt.conf b/docker/test/nginx/certificates-available/letsencrypt.conf new file mode 100644 index 0000000..28abfdf --- /dev/null +++ b/docker/test/nginx/certificates-available/letsencrypt.conf @@ -0,0 +1,2 @@ +ssl_certificate /etc/letsencrypt/live/api.2martens.de/fullchain.pem; +ssl_certificate_key /etc/letsencrypt/live/api.2martens.de/privkey.pem; \ No newline at end of file diff --git a/docker/test/nginx/certificates-available/selfsigned.conf b/docker/test/nginx/certificates-available/selfsigned.conf new file mode 100644 index 0000000..119d786 --- /dev/null +++ b/docker/test/nginx/certificates-available/selfsigned.conf @@ -0,0 +1,2 @@ +ssl_certificate /etc/nginx/ssl/selfsigned.crt; +ssl_certificate_key /etc/nginx/ssl/selfsigned.key; \ No newline at end of file diff --git a/docker/test/nginx/entrypoint.sh b/docker/test/nginx/entrypoint.sh index 11a2a66..0decf23 100644 --- a/docker/test/nginx/entrypoint.sh +++ b/docker/test/nginx/entrypoint.sh @@ -6,11 +6,10 @@ NGINX_CONF="/etc/nginx/nginx.conf" if [ -f "$CERT_PATH" ] && [ -f "$KEY_PATH" ]; then echo "✅ Real certificate found — starting full HTTPS Nginx" + ln -sf /etc/nginx/certificates-available.d/letsencrypt.conf /etc/nginx/certificates-enabled.d/certificates.conf else echo "⚠️ No certificate found — starting Nginx with self-signed TLS fallback" - mkdir -p /etc/letsencrypt/live/api.2martens.de - ln -sf /etc/nginx/ssl/selfsigned.crt /etc/letsencrypt/live/api.2martens.de/fullchain.pem - ln -sf /etc/nginx/ssl/selfsigned.key /etc/letsencrypt/live/api.2martens.de/privkey.pem + ln -sf /etc/nginx/certificates-available.d/selfsigned.conf /etc/nginx/certificates-enabled.d/certificates.conf fi -exec /docker-entrypoint.sh "$@ +exec /docker-entrypoint.sh "$@" diff --git a/docker/test/nginx/nginx.conf b/docker/test/nginx/nginx.conf index c0bae3b..350e195 100644 --- a/docker/test/nginx/nginx.conf +++ b/docker/test/nginx/nginx.conf @@ -21,9 +21,7 @@ http { listen 443 ssl; server_name api.2martens.de; - ssl_certificate /etc/letsencrypt/live/api.2martens.de/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/api.2martens.de/privkey.pem; - + include /etc/nginx/certificates-enabled.d/*.conf; include /etc/nginx/paths-enabled.d/*.conf; location / { return 404; }