Metainformationen zur Seite
Übersetzungen dieser Seite:
- de
HTTPS SSL-Zertifikat und eine eigene Zertifizierungsstelle
Certification Authority anlegen
- Verzeichnis anlegen für das Zertifikat und weitere Dateien:
root@linux# mkdir /root/ca root@linux# cd /root/ca
- Gültigkeit: 10 Jahre
- Geheimer Schlüssel: cakey.pem
- CA-Zertifikat: cacert.pem
- Länge: 2048 Bit:
- Wichtig: Hier ein gutes Passwort verwenden
root@linux# openssl req -new -x509 -newkey rsa:2048 -keyout cakey.pem -out cacert.pem -days 3650
Es sind nun die Dateien cacert.pem und cakey.pem vorhanden.
- Rechte nur für root setzen:
root@linux# chmod 600 cakey.pem
* Testen, ob Schlüssel mit Password geöffnet werden kann:
root@linux# openssl rsa -in cakey.pem -noout -text
Schlüssel für das Serverzertifikat erzeugen
- Eigene CA ist nun angelegt
- Sclüssel erzeugen
- Länge: 2048 Bit
- RSA Schlüssel
- Verschlüsselung mit AES 128
- Passphrase ist egal, darf aber nicht leer sein
root@linux# openssl genrsa -out serverkey.pem -aes128 2048 -days 3650
- Passphrase wieder entfernen, damit Webserver den Schlüssel selbst lesen kann:
root@linux# openssl rsa -in serverkey.pem -out serverkey.pem
Certificate Signing Request erzeugen
- Certificate Signing Request: CSR
- Allgemeine Daten können wie oben sein:
- Common Name ist wichtig! Hier muss der DNS-Name stehen, unter dem der Client den Server anspricht
Z.B. raspberrypi.wernerhome.local - _challenge password_ kann lee bleiben
root@linux# openssl req -new -key serverkey.pem -out req.pem -nodes
Mittlerweile sind vier Dateien im Verzeichnis:
root@linux# ls cacert.pem cakey.pem req.pem serverkey.pem
OpenSSL-Konfiguration anpassen
- Datei /etc/ssl/openssl.cnf ändern
- In der Sektion [ CA_default ] anpassen:
dir = . # Where everything is kept new_certs_dir = $dir # default place for new certs private_key = $dir/cakey.pem # The private key RANDFILE = $dir/.rand # private random number file default_days = 3650 # how long to certify for
- Noch zwei Dateien anlegen:
root@linux# echo 01 > serial root@linux# touch index.txt
Serverzertifikat signieren
- Unsere CA signiert nun das Zertifikat:
- Dabei das geheime Password für /cakey.pem s.o. eingeben:
root@linux# openssl ca -in req.pem -notext -out servercert.pem
Einbinden der root CA in die Zertifizierungsstelle des Browsers
- Firefox: cacert.pem importieren
- Einstellungen → Erweitert → Zertifikate
- → Zertifikate anzeigen → Zertifizierungsstellen
- Chrome/Chromium:
- Einstellungen → Erweitert
- → Zertifikate verwalten / HTTPS/SSL-Zertifikate und -Einstellungen verwalten
- → Zertifizierungsstellen
Übersicht openssl Kommandos
Kommando | Erläuterung |
---|---|
req | creates and processes certificate requests in PKCS#10 format Create self signed certificates for use as root CAs |
rsa | processes / convert RSA keys |
genrsa | generates an RSA private key |
ca | minimal CA application. Sign certificate requests generate CRLs maintains a text database of issued certificates / statuses |