OpenSSL

Aus Shea Wiki
Zur Navigation springen Zur Suche springen

Allgemeine Befehle

Zertifikatsinhalt anzeigen:

openssl x509 -noout -text -in DATEI


Neuen Key erstellen:

openssl genrsa -out DATEI.key 2048


Zertifikatsrequest erstellen:

openssl req -new -sha256 -key DATEI.key -out DATEI.csr


Zertifikate erzeugen mit OpenSSL

CA aufsetzen, allgemeine Konfiguration

Ich bin der Debian-Anleitung gefolgt.

Die Pfade ensprechen der Konfiguration von Fedora.

/etc/pki/tls/misc/CA ist ein Hilfs-Skript, dass als Wrapper die Aufrufe von OpenSSL vereinfacht. Dieses Skript muss ggf. angepasst werden, damit es den eigenen Wünschen entspricht, z.B.

DAYS="-days 1825"
CADAYS="-days 3650"


Außerdem muss /etc/pki/tls/openssl.cnf angepasst werden. Hier kann man z.B. Vorgaben für Requests machen, z.B.

[ CA_default ]
default_days = 1825

[ req ]
default_bits = 2048
req_extensions = v3_req

[ req_distinguished_name ]
countryName_default             = DE
stateOrProvinceName_default     = NRW
0.organizationName_default      = Shea

[ usr_cert ]
subjectAltName=${ENV::SAN} # Zertifikate mit Subject Alternative Name erzeugen
#copy_extensions = copy    # Extensions wie Subject Alternative Name aus Request übernehmen

[ v3_req ]
subjectAltName=${ENV::SAN} # Requests mit Subject Alternative Name erzeugen


Eine neue CA wird dann mit /etc/pki/tls/misc/CA -newca erzeugt. Dabei werden verschiedene Parameter abgefragt, die relativ selbsterklärend sind. Die "PEM pass phrase" wird genutzt, um den geheimen Schlüssel der CA zu verschlüsseln und entsprechend sicher zu wählen. Beim Signieren muss die pass phrase wieder angegeben werden. Das CA-Zertifikat wird unter /etc/pki/CA/cacert.pem abgelegt.

Damit das System diese CA akzeptiert, muss sie an unterschiedlichen Stellen hinzugefügt werden.

  • OpenSSL: CA-Zertifikate liegen bei Fedora in einer großen Datei: /etc/pki/tls/certs/ca-bundle.crt - um die neue CA hinzuzufügen cat /etc/pki/CA/cacert.pem >> /etc/pki/tls/certs/ca-bundle.crt ausführen
  • Firefox: In den Einstellungen unter Erweitert -> Verschlüsselung "Zertifikate anzeigen" wählen. Dort dann auf dem Tab Zertifizierungsstellen "Importieren..." wählen und die cacert.pem-Datei auswählen.
  • OpenLDAP: ...

Zertifikate erstellen

Dateien wirden bei den folgenden Befehlen jeweils im aktuellen Verzeichnis erzeugt.

Nach dem Aufsetzen der CA kann man mit /etc/pki/tls/misc/CA -newreq Zertifikats-Requests erzeugen. Dabei werden wieder verschiedene Parameter abgefragt. Die "PEM pass phrase" ist für den neu erzeugten Key in newkey.pem. Der Request wird in newreq.pem erzeugt und kann mit openssl req -noout -text -in newreq.pem überprüft werden.

Wenn man die Zeilen mit req_extensions und subjectAltName in openssl.cnf wie open setzt und die Umgebungsvariable SAN setzt, wird die Extension "Subject Alternative Name" beim Erzeugen von Zertifikats-Requests entsprechend gesetzt. Man kann alternativ die Extension auch direkt in openssl.cnf setzen. Die Extension ist z.B. wichtig bei Webservern, die unter verschiedenen Namen erreichbar sind. Die Syntax ist DNS:xxx.com, IP:a.b.c.d, email:a@xxx.com.

Nach dem Erzeugen des Requests kann man mit /etc/pki/tls/misc/CA -sign das neue Zertifikat newcert.pem erzeugen. Dabei muss ggf. wieder die Umgebungsvariable SAN gesetzt sein. Das Zertifikat kann mit openssl x509 -noout -text -in newcert.pem überprüft werden.

Um eine Key-Datei ohne Passwort zu erhalten, kann man openssl rsa -in newkey.pem -out newkey.nopass.pem aufrufen.

Das Zertifikat newcert.pem und der Key newkey.nopass.pem müssen dann passend kopiert werden.


KategorieWissen