Variablen deklarieren
Im Folgenden ist sowohl die csh-Syntax als auch die bash-/sh-Syntax gezeigt.
# Variablen initialisieren und in nginx-Verzeichnis wechseln
# CSH-Syntax (auch für tcsh und ähnliche)
set BASE_FILENAME=`hostname`
set key=${BASE_FILENAME}.key
set csr=${BASE_FILENAME}.csr
set crt=${BASE_FILENAME}.crt
# SH-Syntax (auch für bash und ähnliche)
BASE_FILENAME=`hostname`
key=${BASE_FILENAME}.key
csr=${BASE_FILENAME}.csr
crt=${BASE_FILENAME}.crt
SSL Schlüssel, CSR und Zertifikat erstellen
cd /usr/local/etc/nginx
# Schlüssel generieren
openssl genrsa -out ${key} 2048
# CSR erstellen (FQDN als Common Name eingeben!)
openssl req -new -key ${key} -out ${csr}
# Signiertes Zertifikat erstellen
openssl x509 -req -days 3650 -in ${csr} -signkey ${key} -out ${crt}
# Korrekte Dateinamen in nginx.conf referenzieren
# Achtung: Nutzt man in der nginx.conf mehrere unterschiedliche
# Zertifikate, ist das Ersetzen sämtlicher Vorkommnisse laut
# folgender Kommandos wahrscheinlich unerwünscht.
sed -i '' -e "s/^ *ssl_certificate_key .*/ ssl_certificate_key ${key};/g" /usr/local/etc/nginx/nginx.conf
sed -i '' -e "s/^ *ssl_certificate .*/ ssl_certificate ${crt};/g" /usr/local/etc/nginx/nginx.conf