Skriptmagie
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
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
openssl(1), sed(1)