Files
workavia-drive/twake/docker/tdrive-frontend/self-signed.sh
T
Anton Shepilov 380f01222a 🐳 Deploy image to the internal docker registry
* Deploy the image to the internal docker registry
* Removed unnecessary stage in backend build
2023-04-05 15:55:29 +02:00

53 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Script to create selfsigned certificates if they don't exist. All certificate
# information can be customized using env variables.
# Licence: GPL
# Note: derivated from https://gitlab.com/live9/docker/containers/openssl/-/blob/master/entrypoint
#
set -eo pipefail
[ "${DEBUG}" = "yes" ] && set -x
SSL_PATH="/etc/nginx/ssl/"
SSL_KEY="${SSL_PATH}/selfsigned.key"
SSL_CERT_REQUEST="${SSL_PATH}/selfsigned.csr"
SSL_CERTIFICATE="${SSL_PATH}/selfsigned.crt"
SSL_DHPARAM_FILE="${SSL_PATH}/dhparam.pem"
# Certificate creation params
SSL_VALID_DAYS="${SSL_VALID_DAYS:-365}"
SSL_SUBJ_COUNTRY="${SSL_SUBJ_COUNTRY:-FR}"
SSL_SUBJ_STATE="${SSL_SUBJ_STATE:-Hauts-de-France}"
SSL_SUBJ_LOCALITY="${SSL_SUBJ_LOCALITY:-Paris}"
SSL_SUBJ_ORG="${SSL_SUBJ_ORG:-Linagora}"
SSL_SUBJ_ORG_UNIT="${SSL_SUBJ_ORG_UNIT:- Twake}"
SSL_SUBJ_CN="${SSL_SUBJ_CN:-localhost}"
SSL_SUBJECT="/C=${SSL_SUBJ_COUNTRY}/ST=${SSL_SUBJ_STATE}/L=${SSL_SUBJ_LOCALITY}/O=${SSL_SUBJ_ORG}/OU=${SSL_SUBJ_ORG_UNIT}/CN=${SSL_SUBJ_CN}"
SSL_KEY_LENGTH=${SSL_KEY_LENGTH:-2048}
if [ ! -f ${SSL_CERTIFICATE} ]; then
echo "Creating certificate sigining request..."
mkdir -p ${SSL_PATH}
openssl req \
-newkey rsa:${SSL_KEY_LENGTH} \
-sha256 \
-nodes \
-keyout ${SSL_KEY} \
-out ${SSL_CERT_REQUEST} \
-subj "${SSL_SUBJECT}"
echo "Creating self-signed certificate..."
openssl x509 -req -days ${SSL_VALID_DAYS} \
-in ${SSL_CERT_REQUEST} \
-signkey ${SSL_KEY} \
-out ${SSL_CERTIFICATE}
echo "Creating dhparam file..."
# When SSL_DHPARAM_FILE is present the whole process is done
openssl dhparam -out ${SSL_DHPARAM_FILE}.tmp ${SSL_KEY_LENGTH}
mv ${SSL_DHPARAM_FILE}.tmp ${SSL_DHPARAM_FILE}
echo "Done."
else
echo "Selfsigned certificate already exists, skipping."
fi