Zertifizierungsstelle einrichten (OpenSSL): Unterschied zwischen den Versionen
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Dieser Artikel beschreibt, wie unter Debian GNU/Linux eine Zertifizierungsstelle (CA = Certificate Authority) auf Basis von OpenSSL erstellt werden kann. | Dieser Artikel beschreibt, wie unter Debian GNU/Linux eine selbst signierte Zertifizierungsstelle (CA = Certificate Authority) auf Basis von OpenSSL erstellt werden kann. | ||
== Vorbereitungen == | == Vorbereitungen == | ||
Zeile 8: | Zeile 8: | ||
# chmod 700 private # touch index.txt | # chmod 700 private # touch index.txt | ||
# echo 1000 > serial | # echo 1000 > serial | ||
== Konfiguration anpassen == | |||
Unter Debian findet sich die Default-Konfigurationsdatei für OpenSSL unter <code>/etc/ssl/openssl.cnf</code>. Sie kann für die eigenen Zwecke angepasst werden, z. B. indem die Default-Werte für bestimmte Felder gesetzt werden. | Unter Debian findet sich die Default-Konfigurationsdatei für OpenSSL unter <code>/etc/ssl/openssl.cnf</code>. Sie kann für die eigenen Zwecke angepasst werden, z. B. indem die Default-Werte für bestimmte Felder gesetzt werden. | ||
Zeile 13: | Zeile 15: | ||
* Es können die Default-Werte für Land, Region oder Organization vorbelegt werden. | * Es können die Default-Werte für Land, Region oder Organization vorbelegt werden. | ||
== Stamm- | == Schlüssel für Stamm-Zertifizierungsstellen (Root CA) erstellen == | ||
Für die Stamm-Zertifizierungsstelle sollte | Für die Stamm-Zertifizierungsstelle wird ein privater Schlüssel benötigt. Dessen Schlüssellänge sollte so angesetzt werden, dass sie in der Gültigkeitsdauer des Stammstellen-Zertifikats ausreichend Sicherheit verspricht. | ||
Der private | Für eine Gültigkeitszeit von 10 Jahren sind 2048 Bit im Jahr 2017 vermutlich zu wenig und daher sollte eher eine Schlüssellänge von 4096 Bit benutzt werden. | ||
Der private Schlüssel der Stamm-Zertifizierungsstelle sollte auch mit AES256 verschlüsselt werden und mit einem starken Passwort gesichert werden. | |||
# cd /root/ca | # cd /root/ca | ||
# openssl genrsa -aes256 -out private/cakey.pem 4096 | # openssl genrsa -aes256 -out private/cakey.pem 4096 | ||
Zeile 22: | Zeile 26: | ||
# chmod 400 private/cakey.pem | # chmod 400 private/cakey.pem | ||
Idealerweise sollte der Schlüssel auf einer Maschine ohne Internet-Zugang offline gehalten werden. | Idealerweise sollte der Schlüssel auf einer Maschine ohne Internet-Zugang offline gehalten werden. | ||
# openssl req -new -x509 -days 3650 -sha512 -key private/cakey.pem -out certs/cacert.pem | |||
Zugriff auf das Stammstellen-Zertifikat einschränken: | |||
# chmod 444 private/cacert.pem | |||
Für das Ausstellen von Zertifikaten sollten Zwischen-Zertifizierungsstellen verwendet werden. | Für das Ausstellen von Zertifikaten sollten Zwischen-Zertifizierungsstellen verwendet werden. |
Version vom 31. August 2017, 22:56 Uhr
Dieser Artikel beschreibt, wie unter Debian GNU/Linux eine selbst signierte Zertifizierungsstelle (CA = Certificate Authority) auf Basis von OpenSSL erstellt werden kann.
Vorbereitungen
Verzeichnisse für CA anlegen, z. B.:
# mkdir /root/ca # cd /root/ca # mkdir certs crl newcerts private # chmod 700 private # touch index.txt # echo 1000 > serial
Konfiguration anpassen
Unter Debian findet sich die Default-Konfigurationsdatei für OpenSSL unter /etc/ssl/openssl.cnf
. Sie kann für die eigenen Zwecke angepasst werden, z. B. indem die Default-Werte für bestimmte Felder gesetzt werden.
Beispiele:
- Es können die Default-Werte für Land, Region oder Organization vorbelegt werden.
Schlüssel für Stamm-Zertifizierungsstellen (Root CA) erstellen
Für die Stamm-Zertifizierungsstelle wird ein privater Schlüssel benötigt. Dessen Schlüssellänge sollte so angesetzt werden, dass sie in der Gültigkeitsdauer des Stammstellen-Zertifikats ausreichend Sicherheit verspricht.
Für eine Gültigkeitszeit von 10 Jahren sind 2048 Bit im Jahr 2017 vermutlich zu wenig und daher sollte eher eine Schlüssellänge von 4096 Bit benutzt werden.
Der private Schlüssel der Stamm-Zertifizierungsstelle sollte auch mit AES256 verschlüsselt werden und mit einem starken Passwort gesichert werden.
# cd /root/ca # openssl genrsa -aes256 -out private/cakey.pem 4096
Zugriff auf den Schlüssel einschränken:
# chmod 400 private/cakey.pem
Idealerweise sollte der Schlüssel auf einer Maschine ohne Internet-Zugang offline gehalten werden.
# openssl req -new -x509 -days 3650 -sha512 -key private/cakey.pem -out certs/cacert.pem
Zugriff auf das Stammstellen-Zertifikat einschränken:
# chmod 444 private/cacert.pem
Für das Ausstellen von Zertifikaten sollten Zwischen-Zertifizierungsstellen verwendet werden.
Zwischen-Zertifizierungsstelle (Intermediate CA) erstellen
Todo
Computer-Zertifikat erstellen
Privaten Schlüssel "cert.key" mit Schlüssellänge 2048 Byte erstellen:
openssl genrsa -out cert.key 2048
Für Server-Zertifikate ist es bei der Beantwortung der Fragen notwendig, als Common Name den Hostnamen des Servers einzugeben. Als Anhaltspunkt kann der Name verwendet werden, der im Browser für den Zugriff auf den Server verwendet wird. Dies kann der Servername im lokalen Netzwerk, der Full Qualified Domain Name (FQDN) oder die IP-Adresse des Servers sein.
Zertifikatsanfrage (CSR = Certificate Signing Request) erstellen:
openssl req -new -key cert.key -out cert.csr -sha256
Quellen
- Umfassend, strukturiert und akademisch sauber: https://jamielinux.com/docs/openssl-certificate-authority/
- Mittelumfassend und recht sauber: https://thomas-leister.de/selbst-signierte-tls-zertifikate-mit-eigener-ca/
- Kurz und bündig, recht sauber: https://blog.veloc1ty.de/2015/08/13/eigene-zertifizierungsstelle-ca-mit-sub-zertifizierungsstellen-sub-cas/
- Kurz und bündig, Befehle teils fragwürdig: https://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/
- Kurz und bündig, Befehle teils fragwürdig, out of Date: https://www.maffert.net/eigene-ca-zertifizierungsstelle-erstellen-und-zertifikate-ausstellen-debian/