Erstellung einer eigenen hierachischen CA
Aus ConfigWiki
(Unterschied zwischen Versionen)
(→Zertifikat für OpenVPN Server erstellen) |
(→Los gehts) |
||
Zeile 64: | Zeile 64: | ||
cat bamseroot.crt > services/openvpn/openvpn_complete.crt | cat bamseroot.crt > services/openvpn/openvpn_complete.crt | ||
cat services/openvpn/openvpn.crt >> services/openvpn/openvpn_complete.crt | cat services/openvpn/openvpn.crt >> services/openvpn/openvpn_complete.crt | ||
− | * ein Test ... sollte in etwa "openvpn_complete.crt: OK" ergeben '''Testen ist wichtig !''' | + | * ein Test ... sollte in etwa "openvpn_complete.crt: OK" ergeben. '''Testen ist wichtig !''' |
openssl verify -CAfile bamseroot.crt services/openvpn/openvpn_complete.crt | openssl verify -CAfile bamseroot.crt services/openvpn/openvpn_complete.crt | ||
=== Zertifikat für OpenVPN Server erstellen === | === Zertifikat für OpenVPN Server erstellen === | ||
Zeile 73: | Zeile 73: | ||
openssl ca -cert services/openvpn/openvpn.crt -keyfile services/openvpn/openvpn.key -in services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.csr -out services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.crt | openssl ca -cert services/openvpn/openvpn.crt -keyfile services/openvpn/openvpn.key -in services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.csr -out services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.crt | ||
*und wieder testen | *und wieder testen | ||
− | openssl verify -CAfile .services/openvpn/openvpn_complete.crt services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.crt | + | openssl verify -CAfile .services/openvpn/openvpn_complete.crt services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.crt |
+ | === CA für ersten Kunden erstellen == | ||
+ | |||
+ | openssl req -new -newkey rsa:1024 -keyout cusomers/custom_1/custom_1.key -out cusomers/custom_1/custom_1..csr | ||
+ | openssl ca -cert services/openvpn/openvpn.crt -keyfile services/openvpn/openvpn.key -in cusomers/custom_1/custom_1.csr -out cusomers/custom_1/custom_1_openvpn.crt -extensions v3_ca | ||
+ | * Test ... | ||
+ | openssl verify -CAfile services/openvpn/openvpn_complete.crt cusomers/custom_1/custom_1_openvpn.crt | ||
+ | * Vereinigte CA für Kunden erstellen (Suchtiefe) | ||
+ | cat bamseroot.crt > cusomers/custom_1/custom_1_openvpn_copmplete.crt | ||
+ | cat services/openvpn/openvpn.crt >> cusomers/custom_1/custom_1_openvpn_copmplete.crt | ||
+ | cat cusomers/custom_1/custom_1_openvpn.crt >> cusomers/custom_1/custom_1_openvpn_copmplete.crt | ||
− | + | === Zertifikat für den ersten User des Kunden "custom_1" erstellen === | |
− | + | *(nur zur Sicherheit) | |
− | cd | + | cd /etc/ssl/my_ca |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | openssl req -new -newkey rsa:1024 -keyout k0000_pfsense_office.key -out k0000_pfsense_office.csr | |
− | + | openssl ca -cert ../k0000_openvpn.crt -keyfile ../k0000.key -in k0000_pfsense_office.csr -out k0000_pfsense_office.crt | |
− | openssl req -new -newkey rsa:1024 -keyout k0000_pfsense_office.key -out k0000_pfsense_office.csr | + | * Test ... |
− | openssl ca -cert ../k0000_openvpn.crt -keyfile ../k0000.key -in k0000_pfsense_office.csr -out k0000_pfsense_office.crt | + | openssl verify -CAfile ../k0000_openvpn_copmplete.crt k0000_pfsense_office.crt |
− | + | ||
− | openssl verify -CAfile ../k0000_openvpn_copmplete.crt k0000_pfsense_office.crt | + |
Version vom 4. Januar 2011, 11:05 Uhr
Inhaltsverzeichnis |
Vorüberlegung
Mit hierachischen CA's kann man Berechtigungsstufen verwalten, ohne für jede Stufe ein extra Root-CA erzeugen zu müssen.
Im Grunde geht es darum die Struktur von Benutzerrechten und und abzusichernden Diensten abstrakt nachzubilden.
Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden
In Unserem Fall sollen
- ein Root-CA
- eine von der Root-CA signirte OpenVPN-CA
- ein von der OpenVPN-CA signiertes Server_A-CERT
- eine Kunde_1 Anfrage mit Key
- eine Kunde_1-OpenVPN-CA
- ein Kunde_1-OpenVPN-User_1-CERT
erstellt werden.
Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden
System
- debian || ubuntu z.B. (Debian 2.6.26-26lenny1)
- openssl ist installiert
angegebene System-Pfade beziehen sich auf Debian / Debian-Derivate
Los gehts
Ordnerstruktur anlegen
cd /etc/ssl mkdir my_ca cd my_ca mkdir services mkdir cusomers mkdir services/openvpn mkdir cusomers/custom_1 mkdir services/openvpn/openvpnserver_1 mkdir cusomers/custom_1/user_1
OpenSSL Konfiguration anpassen
Das anpassen der "openssl.cnf" spart spater viel Schreibarbeit.
(Editor nach belieben)
mc -e /usr/lib/ssl/openssl.cnf
- in section "CA_default" den Pfad "dir" anpassen /etc/ssl/my_ca
- Standartwerte für "match" Einträge (Country, Provinve, OrganisationUnit) anpassen z.B.: DE, Sachsen, ...
notwendige Ergänzungen in der Ordnerstruktur
- (nur zur Sicherheit)
cd /etc/ssl/my_ca
- Sammelordner für die Zertifikate (.pem files)
mkdir newcerts
- Index vorhandener Zertifikate
touch index.txt
- Zähler für den nächsten Zertifikatsnamen
touch serial echo 01 > serial
Root-CA erstellen
- (nur zur Sicherheit)
cd /etc/ssl/my_ca
- diese CA gilt 10 Jahre
openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout bamseroot.key -out bamseroot.crt -days 3650
- Diffie-Hellmann Parameter erzeugen
openssl dhparam -out dh1024.pem
CA für OpenVPN Dienst erstellen
- (nur zur Sicherheit)
cd /etc/ssl/my_ca
- die Extension v3_ca bewirkt, das erstellen einer "unter-CA"
openssl req -new -newkey rsa:1024 -keyout services/openvpn/openvpn.key -out services/openvpn/openvpn.csr openssl ca -cert .bamseroot.crt -keyfile bamseroot.key -in services/openvpn/openvpn.csr -out services/openvpn/openvpn.crt -extensions v3_ca
- ein komplettes Zertifikat (Suchtiefe) für den Dienst erstellen
cat bamseroot.crt > services/openvpn/openvpn_complete.crt cat services/openvpn/openvpn.crt >> services/openvpn/openvpn_complete.crt
- ein Test ... sollte in etwa "openvpn_complete.crt: OK" ergeben. Testen ist wichtig !
openssl verify -CAfile bamseroot.crt services/openvpn/openvpn_complete.crt
Zertifikat für OpenVPN Server erstellen
- (nur zur Sicherheit)
cd /etc/ssl/my_ca
openssl req -new -newkey rsa:1024 -keyout services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.key -out services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.csr openssl ca -cert services/openvpn/openvpn.crt -keyfile services/openvpn/openvpn.key -in services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.csr -out services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.crt
- und wieder testen
openssl verify -CAfile .services/openvpn/openvpn_complete.crt services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.crt
= CA für ersten Kunden erstellen
openssl req -new -newkey rsa:1024 -keyout cusomers/custom_1/custom_1.key -out cusomers/custom_1/custom_1..csr openssl ca -cert services/openvpn/openvpn.crt -keyfile services/openvpn/openvpn.key -in cusomers/custom_1/custom_1.csr -out cusomers/custom_1/custom_1_openvpn.crt -extensions v3_ca
- Test ...
openssl verify -CAfile services/openvpn/openvpn_complete.crt cusomers/custom_1/custom_1_openvpn.crt
- Vereinigte CA für Kunden erstellen (Suchtiefe)
cat bamseroot.crt > cusomers/custom_1/custom_1_openvpn_copmplete.crt cat services/openvpn/openvpn.crt >> cusomers/custom_1/custom_1_openvpn_copmplete.crt cat cusomers/custom_1/custom_1_openvpn.crt >> cusomers/custom_1/custom_1_openvpn_copmplete.crt
Zertifikat für den ersten User des Kunden "custom_1" erstellen
- (nur zur Sicherheit)
cd /etc/ssl/my_ca
openssl req -new -newkey rsa:1024 -keyout k0000_pfsense_office.key -out k0000_pfsense_office.csr openssl ca -cert ../k0000_openvpn.crt -keyfile ../k0000.key -in k0000_pfsense_office.csr -out k0000_pfsense_office.crt
- Test ...
openssl verify -CAfile ../k0000_openvpn_copmplete.crt k0000_pfsense_office.crt