PKCS10 Datei mittels openSSL lokal erstellen

openSSL ist ein Bordmittel vieler Linux-Systeme, das aber auch für Windows installiert werden kann. Das System, auf dem kryptografische Schlüssel erzeugt werden, muss vertrauenswürdig sein. Insbesondere der private Schlüssel / Private Key ist schützenswert, weil hierüber der rechtmäßige Inhaber des Zertifikates nachgewiesen wird und es bei einer Kompromittierung zu einem Identitätsdiebstahl kommen kann.

Um die Kommandozeile nicht zu überladen, werden mehrere Angaben in einer Konfigurationsdatei 'cert.conf' ausgelagert, die im gleichen Ordner liegen muss. Inhalt von 'cert.conf' steht zwischen den Gleichzeichen. Die Platzhalter HOSTNAME und SUBDOMAIN müssen ersetzt werden, beispielsweise zu wiki.rz.tuhh.de

=============================================

[ req ]
prompt = no
distinguished_name = req_distinguished_name
req_extensions = req_exts

[ req_distinguished_name ]
countryName = DE
stateOrProvinceName = Hamburg
localityName = Hamburg
organizationName = Technische Universitaet Hamburg
commonName = HOSTNAME.SUBDOMAIN.tuhh.de

[ req_exts ]
subjectAltName = @alt_names

[ alt_names ]
DNS.0=HOSTNAME.SUBDOMAIN.tuhh.de
DNS.1=HOSTNAME.SUBDOMAIN.tu-harburg.de
DNS.2=HOSTNAME.SUBDOMAIN.tu-hamburg.de
DNS.3=HOSTNAME2.SUBDOMAIN.tuhh.de
DNS.4=HOSTNAME2.SUBDOMAIN.tu-harburg.de
DNS.5=HOSTNAME2.SUBDOMAIN.tu-hamburg.de

=============================================

Der Aufruf ist dann:

openssl req -config cert.conf -sha256 -newkey rsa:3072 -keyout pkey.pem -out csr.pem

Der openSSL Aufruf enthält folgende Parameter:

-config cert.conf

Dateiname und ggf. Pfad der Konfigurationsdatei

-sha256

Verschlüsselungsalgorithmus, hier SHA-2 bzw. SHA-256

-newkey rsa:3072

Länge und Art der erzeugten Schlüssel, hier RSA mit 3072 Bit (kürzer 2048, länger 4096 Bit)

-passout pass:

Setzt ein Passwort für den privaten Schlüssel. In diesem Beispiel ist das Passwort leer für einen Serverbetrieb. Achten Sie darauf, dass nur Sie oder root den privaten Schlüssel lesen können und der Schlüssel Ihren Rechner oder den Zielserver nicht verlässt!

-keyout pkey.pem

Private Key bzw. privater Schlüssel, üblicherweise mit einer Passphrase geschützt

-out csr.pem

Certificate Signing Request (CSR), der Zertifikatsantrag, der hochgeladen wird
Der

commonName

des Servers wiederholt sich in der Angabe für

DNS.0

. Weitere Aliase können fortlaufend durchnummeriert ergänzt werden. Im obigen Beispiel gibt es einen zweiten Hostnamen. Beide sind für die Domains der TUHH (tuhh.de, tu.harburg.de, tu-hamburg.de) eingetragen.