Browse Source

security: add tls-proxy.js copy, verify lego checksum via checksums.txt

pull/2552/head
Platon47 4 months ago
committed by GitHub
parent
commit
4869c8abd8
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 9
      Dockerfile

9
Dockerfile

@ -27,14 +27,18 @@ RUN apk add linux-headers build-base go git && \
make make
# Download lego (ACME client for IP TLS certs) - pinned version for reproducibility # Download lego (ACME client for IP TLS certs) - pinned version for reproducibility
# To verify: sha256sum lego.tar.gz against https://github.com/go-acme/lego/releases
ARG LEGO_VERSION=v4.23.1 ARG LEGO_VERSION=v4.23.1
RUN ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') && \ RUN ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') && \
wget -qO /tmp/lego.tar.gz \ wget -qO /tmp/lego.tar.gz \
"https://github.com/go-acme/lego/releases/download/${LEGO_VERSION}/lego_${LEGO_VERSION}_linux_${ARCH}.tar.gz" && \ "https://github.com/go-acme/lego/releases/download/${LEGO_VERSION}/lego_${LEGO_VERSION}_linux_${ARCH}.tar.gz" && \
wget -qO /tmp/lego.tar.gz.sha256 \
"https://github.com/go-acme/lego/releases/download/${LEGO_VERSION}/lego_${LEGO_VERSION}_checksums.txt" && \
grep "lego_${LEGO_VERSION}_linux_${ARCH}.tar.gz" /tmp/lego.tar.gz.sha256 | sha256sum -c - && \
tar -xzf /tmp/lego.tar.gz -C /tmp lego && \ tar -xzf /tmp/lego.tar.gz -C /tmp lego && \
mv /tmp/lego /usr/local/bin/lego && \ mv /tmp/lego /usr/local/bin/lego && \
chmod +x /usr/local/bin/lego && \ chmod +x /usr/local/bin/lego && \
rm /tmp/lego.tar.gz rm /tmp/lego.tar.gz /tmp/lego.tar.gz.sha256
# Copy build result to a new image. # Copy build result to a new image.
# This saves a lot of disk space. # This saves a lot of disk space.
@ -45,7 +49,6 @@ HEALTHCHECK --interval=1m --timeout=5s --retries=3 CMD /usr/bin/timeout 5s /bin/
# Copy build # Copy build
COPY --from=build /app/.output /app COPY --from=build /app/.output /app
# Copy migrations # Copy migrations
COPY --from=build /app/server/database/migrations /app/server/database/migrations COPY --from=build /app/server/database/migrations /app/server/database/migrations
@ -93,6 +96,8 @@ RUN apk add --no-cache \
# Copy cert-management scripts # Copy cert-management scripts
COPY scripts/lego-renew.sh /usr/local/bin/lego-renew.sh COPY scripts/lego-renew.sh /usr/local/bin/lego-renew.sh
COPY scripts/entrypoint.sh /usr/local/bin/entrypoint.sh COPY scripts/entrypoint.sh /usr/local/bin/entrypoint.sh
# Copy TLS proxy (standalone JS - no shell injection risk)
COPY scripts/tls-proxy.js /usr/local/bin/tls-proxy.js
RUN chmod +x /usr/local/bin/lego-renew.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/lego-renew.sh /usr/local/bin/entrypoint.sh
# Set Environment # Set Environment

Loading…
Cancel
Save