OpenSSL CA

Mit OpenSSL ein Root Zertifikat erzeugen und damit ein Server Zertifikat signieren. (Micro-CA)

Root- Zertifikat

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"

Server Zertifikat

Schlü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"

Zertifikat, 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

Diagnose

Befehle 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

Installation

Einrichten von Root- und Server- Zertifikat auf einem Debian System.

Speicherorte:

Root- 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