PKI-Lab mit Root-CA und Teilnehmer-CA: Unterschied zwischen den Versionen
| Zeile 1: | Zeile 1: | ||
| + | =PKI-Lab mit Root-CA und Teilnehmer-CAs= | ||
| + | In diesem Lab wird eine einfache Public Key Infrastructure aufgebaut. | ||
| + | Der Trainer betreibt eine Root-CA. Die Teilnehmer erstellen eigene CAs, die von der Root-CA signiert werden. | ||
| + | Mit diesen Teilnehmer-CAs werden anschließend Server-Zertifikate erzeugt. | ||
==Root-CA erstellen (Trainer)== | ==Root-CA erstellen (Trainer)== | ||
| + | Der Trainer erzeugt eine selbstsignierte Root-CA. | ||
| + | |||
*openssl req -new -x509 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt -days 3650 -subj "/CN=Kit Root CA" | *openssl req -new -x509 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt -days 3650 -subj "/CN=Kit Root CA" | ||
| − | + | Das Zertifikat wird anschließend angezeigt und kontrolliert. | |
*openssl x509 -in ca.crt -text -noout | *openssl x509 -in ca.crt -text -noout | ||
| − | |||
| + | ==Root-CA auf Clients installieren== | ||
| + | Damit Clients Zertifikaten vertrauen, die von dieser PKI ausgestellt werden, | ||
| + | muss die Root-CA im Trust-Store des Systems installiert werden. | ||
| + | |||
| + | ===Debian=== | ||
| + | Das Root-Zertifikat wird in den lokalen CA-Speicher kopiert. | ||
| − | |||
| − | |||
*cp ca.crt /usr/local/share/ca-certificates/ | *cp ca.crt /usr/local/share/ca-certificates/ | ||
| − | + | Der Trust-Store wird aktualisiert. | |
*update-ca-certificates | *update-ca-certificates | ||
| − | |||
| − | ==Rocky== | + | ===Rocky / RHEL=== |
| + | Das Root-Zertifikat wird in den Anchor-Store kopiert. | ||
| + | |||
*cp ca.crt /etc/pki/ca-trust/source/anchors/ | *cp ca.crt /etc/pki/ca-trust/source/anchors/ | ||
| − | + | Der System Trust Store wird neu erzeugt. | |
| − | *update-ca-trust | + | *update-ca-trust extract |
| − | |||
| − | ==Teilnehmer erstellt | + | ==Teilnehmer erstellt CA Request (Beispiel it213)== |
| − | + | Der Teilnehmer erzeugt einen privaten Schlüssel und eine Certificate Signing Request | |
| + | für seine eigene CA. | ||
| − | Teilnehmer it213 | + | *openssl req -new -newkey rsa:4096 -nodes -keyout it213-ca.key -out it213-ca.csr -subj "/CN=it213 Lab CA" |
| + | |||
| + | |||
| + | ==Trainer signiert Teilnehmer-CA== | ||
| + | Die Root-CA signiert die Teilnehmer-CA. Dadurch entsteht die Zertifikatskette. | ||
| + | |||
| + | *openssl x509 -req -in it213-ca.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out it213-ca.crt -days 365 | ||
| + | |||
| + | |||
| + | ==Teilnehmer prüft seine CA== | ||
| + | Der Teilnehmer kontrolliert sein signiertes CA-Zertifikat. | ||
*openssl x509 -in it213-ca.crt -text -noout | *openssl x509 -in it213-ca.crt -text -noout | ||
| − | |||
| + | ==Server-Schlüssel und CSR erzeugen== | ||
| + | Der Teilnehmer erzeugt einen privaten Schlüssel und eine CSR für seinen Webserver. | ||
| − | |||
*openssl req -new -newkey rsa:2048 -nodes -keyout web.key -out web.csr -subj "/CN=web.it213.lab" | *openssl req -new -newkey rsa:2048 -nodes -keyout web.key -out web.csr -subj "/CN=web.it213.lab" | ||
| − | |||
| + | ==Server-Zertifikat signieren== | ||
| + | Die Teilnehmer-CA signiert das Server-Zertifikat. | ||
| − | |||
*openssl x509 -req -in web.csr -CA it213-ca.crt -CAkey it213-ca.key -CAcreateserial -out web.crt -days 365 | *openssl x509 -req -in web.csr -CA it213-ca.crt -CAkey it213-ca.key -CAcreateserial -out web.crt -days 365 | ||
| − | |||
| + | ==Zertifikat prüfen== | ||
| + | Das fertige Server-Zertifikat wird angezeigt. | ||
| − | |||
*openssl x509 -in web.crt -text -noout | *openssl x509 -in web.crt -text -noout | ||
| − | + | ||
| + | ==Zertifikatskette prüfen== | ||
| + | Die komplette Zertifikatskette wird überprüft. | ||
| + | |||
| + | *openssl verify -CAfile ca.crt -untrusted it213-ca.crt web.crt | ||
| Zeile 67: | Zeile 91: | ||
└── web.it213.lab | └── web.it213.lab | ||
| − | + | Die Root-CA signiert die Teilnehmer-CAs. | |
| + | Die Teilnehmer-CAs signieren anschließend ihre eigenen Server-Zertifikate. | ||
Version vom 13. März 2026, 12:18 Uhr
PKI-Lab mit Root-CA und Teilnehmer-CAs
In diesem Lab wird eine einfache Public Key Infrastructure aufgebaut. Der Trainer betreibt eine Root-CA. Die Teilnehmer erstellen eigene CAs, die von der Root-CA signiert werden. Mit diesen Teilnehmer-CAs werden anschließend Server-Zertifikate erzeugt.
Root-CA erstellen (Trainer)
Der Trainer erzeugt eine selbstsignierte Root-CA.
- openssl req -new -x509 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt -days 3650 -subj "/CN=Kit Root CA"
Das Zertifikat wird anschließend angezeigt und kontrolliert.
- openssl x509 -in ca.crt -text -noout
Root-CA auf Clients installieren
Damit Clients Zertifikaten vertrauen, die von dieser PKI ausgestellt werden, muss die Root-CA im Trust-Store des Systems installiert werden.
Debian
Das Root-Zertifikat wird in den lokalen CA-Speicher kopiert.
- cp ca.crt /usr/local/share/ca-certificates/
Der Trust-Store wird aktualisiert.
- update-ca-certificates
Rocky / RHEL
Das Root-Zertifikat wird in den Anchor-Store kopiert.
- cp ca.crt /etc/pki/ca-trust/source/anchors/
Der System Trust Store wird neu erzeugt.
- update-ca-trust extract
Teilnehmer erstellt CA Request (Beispiel it213)
Der Teilnehmer erzeugt einen privaten Schlüssel und eine Certificate Signing Request für seine eigene CA.
- openssl req -new -newkey rsa:4096 -nodes -keyout it213-ca.key -out it213-ca.csr -subj "/CN=it213 Lab CA"
Trainer signiert Teilnehmer-CA
Die Root-CA signiert die Teilnehmer-CA. Dadurch entsteht die Zertifikatskette.
- openssl x509 -req -in it213-ca.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out it213-ca.crt -days 365
Teilnehmer prüft seine CA
Der Teilnehmer kontrolliert sein signiertes CA-Zertifikat.
- openssl x509 -in it213-ca.crt -text -noout
Server-Schlüssel und CSR erzeugen
Der Teilnehmer erzeugt einen privaten Schlüssel und eine CSR für seinen Webserver.
- openssl req -new -newkey rsa:2048 -nodes -keyout web.key -out web.csr -subj "/CN=web.it213.lab"
Server-Zertifikat signieren
Die Teilnehmer-CA signiert das Server-Zertifikat.
- openssl x509 -req -in web.csr -CA it213-ca.crt -CAkey it213-ca.key -CAcreateserial -out web.crt -days 365
Zertifikat prüfen
Das fertige Server-Zertifikat wird angezeigt.
- openssl x509 -in web.crt -text -noout
Zertifikatskette prüfen
Die komplette Zertifikatskette wird überprüft.
- openssl verify -CAfile ca.crt -untrusted it213-ca.crt web.crt
PKI-Struktur im Lab
Kit Root CA
├── it201-ca
├── it202-ca
├── it203-ca
├── ...
└── it213-ca
└── web.it213.lab
Die Root-CA signiert die Teilnehmer-CAs. Die Teilnehmer-CAs signieren anschließend ihre eigenen Server-Zertifikate.