Skip to content

Commit c5fcc61

Browse files
committed
Add post-quantum hybrid ECDHE-MLKEM for TLSv1.3
1 parent 6fbee2b commit c5fcc61

File tree

7 files changed

+15
-27
lines changed

7 files changed

+15
-27
lines changed

Makefile

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -641,10 +641,6 @@ fix:
641641
${DOCKER_COMPOSE_TOOLS_CMD} run --rm tools bin/fix.sh ${pysrcdirs}
642642
${DOCKER_COMPOSE_TOOLS_CMD} run --rm tools bin/lint.sh ${pysrcdirs}
643643

644-
check-gixy: env=test
645-
check-gixy:
646-
${DOCKER_COMPOSE_CMD} exec webserver /opt/gixy/bin/gixy /etc/nginx/nginx.conf
647-
648644
build-linttest linttest-build:
649645
${DOCKER_COMPOSE_TOOLS_CMD} build tools
650646

docker/compose.development.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
services:
22
# terminate tls so we don't need to have exceptions in the nginx config file for development
33
port-expose:
4-
image: nginx:1.27.3-alpine
4+
image: nginx:1.29.1-alpine3.22
55
networks:
66
- public-internet
77
- internal

docker/compose.integration-tests.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ services:
44
# from the internal network to the outside
55
# also terminate tls so we don't need to have exceptions in the nginx config file for development
66
port-expose:
7-
image: nginx:1.27.3-alpine
7+
image: nginx:1.29.1-alpine3.22
88
networks:
99
- public-internet
1010
- port-expose
@@ -96,7 +96,7 @@ services:
9696
- $RABBITMQ_GUI
9797

9898
test-target:
99-
image: nginx:1.27.3-alpine
99+
image: nginx:1.29.1-alpine3.22
100100

101101
networks:
102102
public-internet:
@@ -137,7 +137,7 @@ services:
137137
MH_SMTP_BIND_ADDR: 0.0.0.0:25
138138

139139
static:
140-
image: nginx:1.27.3-alpine
140+
image: nginx:1.29.1-alpine3.22
141141

142142
restart: unless-stopped
143143

docker/compose.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ services:
5959
- nginx-logs-exporter:/var/log/nginx/prometheus-nginxlog-exporter/
6060

6161
healthcheck:
62-
test: ["CMD", "service", "nginx", "status"]
62+
test: ["CMD", "curl", "-kfsSo/dev/null", "https://$INTERNETNL_DOMAINNAME", "--resolve", "$INTERNETNL_DOMAINNAME:443:127.0.0.1"]
6363
interval: $HEALTHCHECK_INTERVAL
6464
start_interval: $HEALTHCHECK_START_INTERVAL
6565
start_period: 1m

docker/webserver.Dockerfile

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
1-
FROM nginx:1.27.3
1+
FROM nginx:1.29.1-alpine3.22
22

3-
RUN apt-get update && apt-get install -y \
3+
RUN apk add \
4+
# for random quic host key
5+
openssl \
46
# for htpasswd
57
apache2-utils \
6-
# for gixy install
7-
python3-venv \
8-
&& rm -rf /var/lib/apt/lists/*
8+
# for acme
9+
certbot
910

10-
# install nginx config static analysis tool
11-
RUN python3 -m venv /opt/gixy
12-
RUN /opt/gixy/bin/pip install gixy==0.1.21
13-
14-
# install certbot
15-
RUN python3 -m venv /opt/certbot
16-
RUN /opt/certbot/bin/pip install certbot==3.0.1
1711
COPY docker/webserver/certbot.sh /docker-entrypoint.d/
1812

1913
RUN mkdir -p /etc/nginx/htpasswd/

docker/webserver/certbot.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ configure_letsencrypt() {
5656
mv /etc/letsencrypt/live/$domain /etc/letsencrypt/live/$domain.bak
5757

5858
# request new certificate for main domain
59-
/opt/certbot/bin/certbot certonly --webroot \
59+
certbot certonly --webroot \
6060
-n \
6161
--webroot-path /var/www/internet.nl \
6262
--rsa-key-size 4096 \
@@ -86,7 +86,7 @@ configure_letsencrypt() {
8686
if [ -f /etc/letsencrypt/renewal/$domain.conf ] && [ ! "$(cat /etc/letsencrypt/.subdomains-configured)" = "$subdomains" ]; then
8787
# request new certificate for subdomains as well, but in a seperate step so we
8888
# don't fail if they are not properly setup
89-
/opt/certbot/bin/certbot certonly --webroot \
89+
certbot certonly --webroot \
9090
-n \
9191
--webroot-path /var/www/internet.nl \
9292
--rsa-key-size 4096 \
@@ -118,4 +118,4 @@ configure_letsencrypt() {
118118
# check certificates for renewal twice a day, make sure the schedule is a moving window so we
119119
# don't accidentally fall in line with the busiest time (eg: 00:00) and get errors due to ACME
120120
# servers being overloaded at that moment
121-
while sleep 11h; do /opt/certbot/bin/certbot renew --post-hook "nginx -s reload"; done&
121+
while sleep 11h; do certbot renew --post-hook "nginx -s reload"; done&

docker/webserver/nginx_templates/app.conf.template

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,9 @@ resolver 127.0.0.11 ipv6=off valid=5s;
3232

3333
root /var/www/internet.nl;
3434

35-
# enable OSCP stapling
36-
ssl_stapling on;
37-
ssl_stapling_verify on;
3835
ssl_protocols TLSv1.2 TLSv1.3;
3936
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
37+
ssl_ecdh_curve SecP384r1MLKEM1024:X25519MLKEM768:SecP256r1MLKEM768:secp521r1:brainpoolP512r1:x448:brainpoolP384r1:secp384r1:x25519:secp256r1:brainpoolP256r1;
4038

4139
http2 on;
4240
http3 on;

0 commit comments

Comments
 (0)