OpenSSL: Unterschied zwischen den Versionen

Aus Shea Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(Änderung 562 von Suelmann (Diskussion) rückgängig gemacht.)
Markierung: Rückgängigmachung
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
__NOTOC__
__NOTOC__
= Allgemeine Befehle =
Zertifikatsinhalt anzeigen:
<pre><nowiki>
openssl x509 -noout -text -in DATEI
</nowiki></pre>
Neuen Key erstellen:
<pre><nowiki>
openssl genrsa -out DATEI.key 2048
</nowiki></pre>
Zertifikatsrequest erstellen:
<pre><nowiki>
openssl req -new -sha256 -key DATEI.key -out DATEI.csr
</nowiki></pre>
= Zertifikate erzeugen mit OpenSSL =
= Zertifikate erzeugen mit OpenSSL =
== CA aufsetzen, allgemeine Konfiguration ==


Ich bin der [http://www.debian-administration.org/articles/618 Debian-Anleitung] gefolgt.
Ich bin der [http://www.debian-administration.org/articles/618 Debian-Anleitung] gefolgt.
Zeile 6: Zeile 30:
Die Pfade ensprechen der Konfiguration von Fedora.
Die Pfade ensprechen der Konfiguration von Fedora.


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


Zeile 24: Zeile 48:
[ req ]
[ req ]
default_bits = 2048
default_bits = 2048
req_extensions = v3_req


[ req_distinguished_name ]
[ req_distinguished_name ]
Zeile 29: Zeile 54:
stateOrProvinceName_default    = NRW
stateOrProvinceName_default    = NRW
0.organizationName_default      = Shea
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 ]
[ v3_req ]
subjectAltName=${ENV::SAN}
subjectAltName=${ENV::SAN} # Requests mit Subject Alternative Name erzeugen
</nowiki></pre>
</nowiki></pre>




Eine neue CA wird dann mit <code><nowiki>/etc/pki/tls/misc/CA -newc</nowiki></code> erzeugt.
Eine neue CA wird dann mit <code><nowiki>/etc/pki/tls/misc/CA -newca</nowiki></code> 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 <code><nowiki>cat /etc/pki/CA/cacert.pem >> /etc/pki/tls/certs/ca-bundle.crt</nowiki></code> 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 <code><nowiki>/etc/pki/tls/misc/CA -newreq</nowiki></code> 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 <code><nowiki>openssl req -noout -text -in newreq.pem</nowiki></code> ü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 <code><nowiki>DNS:xxx.com, IP:a.b.c.d, email:a@xxx.com</nowiki></code>.


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


Wenn man die subjectAltName-Zeile in openssl.cnf wie open setzt und die Umgebungsvariable SAN setzt, wird die Extension "Subject Alternative Name" dabei entsprechend gesetzt.
Um eine Key-Datei ohne Passwort zu erhalten, kann man <code><nowiki>openssl rsa -in newkey.pem -out newkey.nopass.pem</nowiki></code> aufrufen.
 
Das Zertifikat newcert.pem und der Key newkey.nopass.pem müssen dann passend kopiert werden.
----
----
[[KategorieWissen]]
[[KategorieWissen]]

Aktuelle Version vom 20. Dezember 2021, 13:59 Uhr

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