Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
easyrsa [07/08/2023 - 11:48] – thommie4 | easyrsa [11/09/2024 - 09:06] (aktuell) – thommie4 | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
Quelle: [[https:// | Quelle: [[https:// | ||
- | EasyTLS Erweiterung: | + | EasyTLS Erweiterung: |
===== CA einrichten ===== | ===== CA einrichten ===== | ||
Zeile 9: | Zeile 9: | ||
initialisieren | initialisieren | ||
- | '' | + | < |
+ | ./easyrsa init-pki | ||
+ | </ | ||
DH erzeugen | DH erzeugen | ||
- | '' | + | < |
+ | ./easyrsa gen-dh | ||
+ | </ | ||
- | pki bauen (mit PW) | + | pki bauen (mit Passwort zum Signieren von certs) |
+ | |||
+ | < | ||
+ | ./easyrsa build-ca | ||
+ | </ | ||
- | '' | ||
===== Signing Request ===== | ===== Signing Request ===== | ||
Signing Request (CSR) für Server oder Client, mit oder ohne Passwort (nopass = Key ohne Passwort) | Signing Request (CSR) für Server oder Client, mit oder ohne Passwort (nopass = Key ohne Passwort) | ||
- | '' | + | < |
- | ===== Signieren (client oder server) ===== | + | ./easyrsa gen-req EntityName nopass |
+ | </ | ||
- | '' | ||
- | '' | ||
- | ===== Zertifikats Inhalt anzeigen ===== | ||
- | '' | + | ===== Importieren ===== |
- | '' | + | < |
+ | ./ | ||
+ | < | ||
- | Alternativ direkt mit openssl< | + | ===== Signieren ===== |
- | # Zertifikat komplett anzeigen | + | |
+ | Die signierende CA ntscheidet, ob sie ein client oer server Zertifikat signiert | ||
+ | |||
+ | < | ||
+ | ./easyrsa sign-req client EntityName ./easyrsa sign-req server EntityName | ||
+ | </ | ||
+ | |||
+ | ===== Zertifikats Inhalt anzeigen ===== | ||
+ | |||
+ | < | ||
+ | ./easyrsa show-req EntityName./ | ||
+ | </ | ||
+ | |||
+ | Alternativ direkt mit openssl | ||
+ | |||
+ | < | ||
openssl x509 -text -in < | openssl x509 -text -in < | ||
+ | </ | ||
- | # Komplette Anzeige ohne Zertifiaktstext anzeigen | + | Komplette Anzeige ohne Zertifiaktstext anzeigen |
+ | |||
+ | < | ||
openssl x509 -noout -text -in < | openssl x509 -noout -text -in < | ||
+ | </ | ||
- | # den Herausgeber des Zertifikats anzeigen | + | Den Herausgeber des Zertifikats anzeigen |
- | openssl x509 -noout -issuer -in < | + | |
- | # Für wen wurde das Zertifikat ausgestellt? | + | < |
- | openssl x509 -noout -subject | + | openssl x509 -noout -issuer |
+ | </code> | ||
- | # Für welchen Zeitraum ist das Zertifikat gültig? | + | Für wen wurde das Zertifikat ausgestellt? |
+ | |||
+ | < | ||
+ | openssl x509 -noout -subject -in < | ||
+ | </ | ||
+ | |||
+ | Für welchen Zeitraum ist das Zertifikat gültig? | ||
+ | |||
+ | < | ||
openssl x509 -noout -dates -in < | openssl x509 -noout -dates -in < | ||
+ | </ | ||
- | # das obige kombiniert anzeigen | + | Das obige kombiniert anzeigen |
+ | |||
+ | < | ||
openssl x509 -noout -issuer -subject -dates -in < | openssl x509 -noout -issuer -subject -dates -in < | ||
+ | </ | ||
- | # den hash anzeigen | + | Den hash anzeigen |
+ | |||
+ | < | ||
openssl x509 -noout -hash -in < | openssl x509 -noout -hash -in < | ||
+ | </ | ||
- | # den MD5-Fingerprint anzeigen | + | Den MD5-Fingerprint anzeigen |
+ | |||
+ | < | ||
openssl x509 -noout -fingerprint -in < | openssl x509 -noout -fingerprint -in < | ||
</ | </ | ||
- | Key Passwörter ändern | + | Key Passwörter ändern |
- | '' | + | < |
+ | ./easyrsa set-rsa-pass EntityName | ||
+ | ./easyrsa set-ec-pass EntityName | ||
+ | </ | ||
- | '' | + | Mit " |
- | Mit " | + | ===== CSR ===== |
- | **CSR** | + | < |
+ | openssl req -in www2.netzwissen.de.csr -text -noout | ||
+ | </ | ||
- | '' | + | **Zertifikat** |
- | **Zertifikat** | + | < |
+ | openssl x509 -in certificate.crt -text -noout | ||
+ | </ | ||
- | '' | + | ===== Zertifikat zurückziehen ===== |
- | ===== Zertifikat zurückziehen ===== | + | |
< | < | ||
- | ./easyrsa revoke EntityName | + | ./easyrsa revoke EntityName |
</ | </ | ||
- | CRL erzeugen | + | CRL erzeugen |
< | < | ||
./easyrsa gen-crl | ./easyrsa gen-crl | ||
- | </ | + | </ |
- | Achtung: Die CRL sollte **alle sechs Monate** neu erzeugt und auf den openvpn Server übertragen werden. Die genauen Daten stehen in der CRL Datei: | + | Achtung: Die CRL sollte **alle sechs Monate** neu erzeugt und auf den openvpn Server übertragen werden. Die genauen Daten stehen in der CRL Datei: |
< | < | ||
- | root@pki01: | + | root@pki01: |
- | Certificate Revocation List (CRL): | + | openssl crl -inform PEM -text -noout -in crl.pem |
- | Version 2 (0x1) | + | |
- | Signature Algorithm: sha256WithRSAEncryption | + | |
- | Issuer: CN = dvsdnet CA | + | |
- | Last Update: Jul 4 14:52:21 2023 GMT | + | |
- | Next Update: Dec 31 14:52:21 2023 GMT | + | |
</ | </ | ||
- | ====== Spezialfälle bei OpenVPN ====== | ||
- | Validierung über common name (alte Methode): Der Common Name für das Server Zertifikat muss den Präfix aus der Server Config enthalten: | + | Certificate Revocation List (CRL): Version 2 (0x1) Signature Algorithm: sha256WithRSAEncryption Issuer: CN = dvsdnet CA Last Update: Jul 4 14:52:21 2023 GMT Next Update: Dec 31 14:52:21 2023 GMT |
- | '' | + | ====== Spezialfälle bei OpenVPN ====== |
- | Mit easyrsa3: | + | Validierung über common name (alte Methode): Der Common Name für das Server Zertifikat muss den Präfix aus der Server Config enthalten: –verify-x509-name openvpn name-prefix |
- | + | ||
- | '' | + | |
- | + | ||
- | '' | + | |
**Neue Methode nach RFC3280: Verifikation nach Zertifikatstyp**: | **Neue Methode nach RFC3280: Verifikation nach Zertifikatstyp**: | ||
- | '' | + | < |
- | + | remote-cert-tls client ./easyrsa sign-req client franklin2.netzwissen.loc | |
- | '' | + | </ |
- | Im Client wird im Gegenzug geprüft, ob das vom OpenVPN Server präsentierte Zertifikat den " | + | Im Client wird im Gegenzug geprüft, ob das vom OpenVPN Server präsentierte Zertifikat den " |
- | ====== PKITOOL Befehle ====== | + | ====== PKITOOL Befehle ====== |
- | '' | + | pkitool –initca → Build root certificate\\ |
- | pkitool | + | pkitool –initca –pass → Build root certificate with password-protected key\\ |
pkitool –server server1 → Build " | pkitool –server server1 → Build " | ||
pkitool client1 → Build " | pkitool client1 → Build " | ||
Zeile 128: | Zeile 166: | ||
pkitool –sign client4 → Sign " | pkitool –sign client4 → Sign " | ||
pkitool –inter interca → Build an intermediate key-signing certificate/ | pkitool –inter interca → Build an intermediate key-signing certificate/ | ||
- | pkitool –pkcs11 / | + | pkitool –pkcs11 / |
Typical usage for initial PKI setup. Build myserver, client1, and client2 cert/keys. Protect client2 key with a password. Build DH parms. Generated files in ./keys : | Typical usage for initial PKI setup. Build myserver, client1, and client2 cert/keys. Protect client2 key with a password. Build DH parms. Generated files in ./keys : | ||
- | '' | + | '' |
- | + | ||
- | Typical usage for adding client cert to existing PKI: | + | |
- | + | ||
- | '' | + | |