Mit OpenSSL ein Root Zertifikat erzeugen und damit ein Server Zertifikat signieren. (Micro-CA)
Erzeugen von Root- Zertifikat und Schlüssel, dabei wird das Passwort abgefragt mit dem der Schlüssel geschützt wird.
1openssl req \
2 -new \
3 -x509 \
4 -keyout root.example.net.key \
5 -out root.example.net.crt \
6 -days 3650 \
7 -subj "/C=DE/O=example.net/CN=root.example.net"
-x509 Zertifikat erzeugen-keyout Dateiname für den Schlüssel-out Dateiname für das Zertifikat-days Laufzeit-subj Titel des Zertifikates
C LänderkürzelO OrganisationCN NameemailAddress Kontakt Mail AdresseSchlüssel und Zertifikatsanfrage erstellen
1openssl req \
2 -new \
3 -noenc \
4 -out www.example.net.csr \
5 -keyout www.example.net.key \
6 -subj "/C=DE/O=example.net/CN=www.example.net/emailAddress=admin@example.net" \
7 -addext "subjectAltName = DNS:example.net, IP:127.0.0.1"
-noenc Schlüssel nicht mit Passwort schützen, man müsste das Passwort sonst
bei jedem Neustart des Dienstes der das Zertifikat nutzen will eingeben in
älteren Versionen war dies -nodes-out Datei mit der Zertifikatsanfrage-addext x509 Erweiterung hier der subjectAltName, alternative DNS Namen
und/oder IP Adressen für die das Zertifikat gelten sollZertifikat, signiert von der CA, aus Zertifikatsanfrage erstellen
1openssl x509 \
2 -req \
3 -CAkey root.example.net.key \
4 -CA root.example.net.crt \
5 -in www.example.net.csr \
6 -out www.example.net.crt \
7 -copy_extensions copy \
8 -days 365
-req Zertifikat erzeugen-CAkey Dateiname des Root- Zertifikatsschlüssel-CA Dateiname des Root- Zertifikates-in Dateiname der Zertifikatsanfrage-out Dateiname für das Zertifikat-copy_extensions copy x509 Erweiterungen wie z.B. subjectAltName
übernehmen-days LaufzeitBefehle zum überprüfen und zur Fehlersuche
Inhalt einer Zertifikatsanfrage prüfen
1openssl req -in www.example.net.csr -text
Inhalt eines Zertifikates prüfen
1openssl x509 -in www.example.net.crt -text
Passen Schlüssel und Zertifikat zusammen, die Prüfsummen müssen identisch sein
1openssl x509 -in www.example.net.crt -noout -modulus | md5sum
2openssl rsa -in www.example.net.key -noout -modulus | md5sum
Passen Zertifikat zum Root- Zertifikat
1openssl verify -CAfile root.example.net.crt www.example.net.crt
Einrichten von Root- und Server- Zertifikat auf einem Debian System.
Speicherorte:
/etc/ssl/certs/ Server- Zertifikat/etc/ssl/private/ Server- Schlüssel/usr/share/ca-certificates/ Root- Zertifikat/etc/ssl/certs/ca-certificates.crt Datei mit allen Root- Zertifikat denen
das System vertrautRoot- Zertifikat nachdem es unter /usr/share/ca-certificates/ abgelegt wurde
zu den vertrauenswürdigen Zertifikaten im System hinzufügen.
1echo root.example.net.crt >> /etc/ca-certificates.conf
2update-ca-certificates