diff options
Diffstat (limited to 'utils/docker-nginx.tls13-earlydata.start.sh')
-rwxr-xr-x | utils/docker-nginx.tls13-earlydata.start.sh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/utils/docker-nginx.tls13-earlydata.start.sh b/utils/docker-nginx.tls13-earlydata.start.sh new file mode 100755 index 0000000..8bc8f9b --- /dev/null +++ b/utils/docker-nginx.tls13-earlydata.start.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +image="rsnow/nginx" +docker pull $image +ID=$(docker run -d -ti $image) + +echo $ID + +[[ -z "$ID" ]] && echo "container couldn't be retrieved" >&2 && exit 1 + +docker exec -ti $ID nginx -V +docker exec -ti $ID mkdir /etc/nginx/ssl +HN=$(docker exec -ti $ID hostname| tr -d '\n' | tr -d '\r') + +cd /tmp +cat >$ID.conf << EOF + +server { + listen 443 ssl default_server; + listen [::]:443 ssl default_server; + server_name _; + + ssl_protocols TLSv1.2 TLSv1.3; + ssl_early_data on; + # + ssl_certificate /etc/nginx/ssl/$HN.crt; + ssl_certificate_key /etc/nginx/ssl/$HN.key; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + } + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} +EOF + +docker cp $ID.conf $ID:/etc/nginx/conf.d/443.conf + +C_ST_etc="C=DE/ST=Gotham/L=Nowhere/CN=${HN}" +openssl req -subj "/${C_ST_etc}/CN=${HN}" -newkey rsa:4096 -keyout "$HN.key" -nodes -sha256 -out "$HN.req" +openssl x509 -days 365 -in "$HN.req" -req -signkey "$HN.key" -out "$HN.crt" +docker cp $HN.key $ID:/etc/nginx/ssl +docker cp $HN.crt $ID:/etc/nginx/ssl + +docker exec -ti $ID nginx -s reload +# docker start $ID + +echo +echo "You may now run \"testssl.sh $(docker inspect $ID --format '{{.NetworkSettings.IPAddress}}')\"" + +exit 0 + +# vim:ts=5:sw=5:expandtab |