Wichtige OpenSSL-Befehle
Zur Navigation springen
Zur Suche springen
OpenSSL ist ein mächtiges Werkzeug. Meistens wird es selten gebraucht und daher sind notwendige Befehle alles andere als Routine.
Wenn man auf der Kommandozeile die Shellvariable NAME passend setzt, sind die Kommandos quasi fertig für direktes Copy-Paste.
cd /etc/ssl NAME=server
Bequemer geht's noch mit
-passin file:/path/to/file
, in der Datei steht dann das Passwort. Gültig für Request Signieren, Konvertieren nach pkcs12 und Revoken,- Vorausfüllen der req_distinguished_name-Strings in /etc/ssl/openssl.cnf mit _default-Werten.
Hier eine Übersicht.
Key/Request generieren
openssl req -nodes -new -out req/${NAME}Req.pem -keyout private/${NAME}Key.pem chmod 640 private/${NAME}Key.pem
Request signieren
openssl ca -batch -in req/${NAME}Req.pem -out certs/${NAME}Cert.pem
Selfsigned
openssl req -x509 -nodes -days 3650 -new -out certs/${NAME}Cert.pem \ -keyout private/${NAME}Key.pem
Konvertieren nach pkcs12
openssl pkcs12 -export -in certs/${NAME}Cert.pem -inkey private/${NAME}Key.pem \ -CApath certs/ -passout pass:${NAME} -chain -out ${NAME}.p12
Konvertieren von pkcs12 nach PEM
openssl pkcs12 -in ${NAME}.p12 -out ${NAME}Cert.pem -clcerts -nokeys openssl pkcs12 -in ${NAME}.p12 -out ${NAME}Key.pem -nocerts -nodes
Key verschlüsseln mit Passwort
openssl rsa -aes256 in private/${NAME}Key.pem -out ${NAME}Key-with-pass.pem
Revoken
openssl ca -revoke certs/${NAME}Cert.pem find . -type f -a -name ${NAME}* -exec rm -v {} \;
Expiry checken
for CERT in /etc/ssl/certs/cacert.pem /etc/ssl/certs/*Cert.pem; do echo -n "${CERT} " date -d "`openssl x509 -in ${CERT} -noout -enddate |sed 's/^notAfter=//'`" '+%Y-%m-%d %H:%M:%S' done |sort -n -k 2
Neue Root-CA
cat /dev/null > index.txt echo 01 > crlnumber mkdir crl newcerts req openssl req -new -keyout private/cakey.pem -out careq.pem openssl ca -create_serial -out certs/cacert.pem -days 3650 -batch \ -keyfile private/cakey.pem -selfsign -extensions v3_ca -infiles careq.pem