PKI-Lab mit Root-CA und Teilnehmer-CA

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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.