Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
openssl2 [26/02/2025 - 10:51] – support_netzwissen.de | openssl2 [02/03/2025 - 17:57] (aktuell) – [Formate und Konvertierung] thommie_netzwissen.de | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
===== Schlüssel erzeugen ===== | ===== Schlüssel erzeugen ===== | ||
- | RSA | + | < |
+ | openssl genrsa -aes256 -out dvsdnet.devoteam.de.key.pem | ||
+ | </ | ||
+ | |||
+ | Bei RSA Schlüsseln wird automatisch ein Passwort abgefragt. Das kann man in einem zweiten Schritt wieder entfernen: | ||
+ | |||
+ | < | ||
+ | openssl rsa -in ${filename}.key -out ${filename}.key | ||
+ | </ | ||
ECDSA (elliptic curve) | ECDSA (elliptic curve) | ||
+ | |||
+ | Diese Schlüssel sind kleiner, bein Erzeugen wird kein Passwort verlangt | ||
+ | |||
+ | < | ||
+ | openssl ecparam -name prime256v1 -genkey -noout -out key.pem | ||
+ | </ | ||
+ | |||
+ | ec Key **mit** Passwort erzeugen | ||
+ | |||
+ | < | ||
+ | openssl ecparam -name prime256v1 -genkey | openssl ec -aes256 -out key.pem | ||
+ | </ | ||
===== Certificate Signing Request ===== | ===== Certificate Signing Request ===== | ||
Standard | Standard | ||
+ | |||
+ | Der csr wird entweder selber signiert oder an eine externe CA gegeben. -days regelt die Gültigkeit des Zertifikats und überschreibt die default Werte der ssh Konfiguration. | ||
+ | |||
+ | Einfacher CSR | ||
+ | < | ||
+ | openssl req -nodes -new -newkey rsa:2048 -sha256 -out csr.pem | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | '' | ||
+ | </ | ||
+ | |||
+ | Achtung bei openvpn: CN muß mit " | ||
Mit separater cnf Datei | Mit separater cnf Datei | ||
+ | |||
+ | < | ||
+ | [ req ] | ||
+ | default_bits | ||
+ | default_keyfile | ||
+ | distinguished_name | ||
+ | attributes | ||
+ | req_extensions | ||
+ | |||
+ | dirstring_type = nobmp | ||
+ | |||
+ | [ req_distinguished_name ] | ||
+ | C = DE | ||
+ | ST = Baden-Wuerttemberg | ||
+ | L = Stuttgart | ||
+ | O = Mercedes-Benz Group AG | ||
+ | CN = Common Name | ||
+ | emailAddress | ||
+ | |||
+ | [ req_attributes ] | ||
+ | challengePassword | ||
+ | challengePassword_min | ||
+ | challengePassword_max | ||
+ | |||
+ | [ v3_ca ] | ||
+ | |||
+ | subjectKeyIdentifier = hash | ||
+ | basicConstraints = CA:false | ||
+ | keyUsage = nonRepudiation, | ||
+ | </ | ||
===== Signieren über eigene CA ===== | ===== Signieren über eigene CA ===== | ||
+ | |||
+ | '' | ||
+ | |||
+ | Achtung: Beim Signieren über die eigene CA werden die Zertifikat-Nr hochgezählt (serial in srl Datei). Die srl Datei muss auch für die ServerCA separat existieren. | ||
+ | |||
+ | '' | ||
===== Checks ===== | ===== Checks ===== | ||
Zeile 19: | Zeile 88: | ||
Inhalt kontrollieren | Inhalt kontrollieren | ||
- | Passen key und crt zusammen? | + | Auf der Shell im Klartext lesen: bei CERTs mit " |
- | ====== Formate und Konvertierung ====== | + | < |
+ | openssl x509 -text -noout -in ca.crt | ||
+ | openssl req -text -noout -verify -in csr.pem | ||
+ | </ | ||
- | xxx | + | Check: Passen key und crt zusammen? |
- | ====== CA und Sub CA erstellen ====== | + | Replace < |
- | xxx | + | < |
+ | openssl x509 -noout -modulus -in < | ||
+ | openssl rsa -noout -modulus -in < | ||
+ | </ | ||
- | ====== Apache mit mod_ssl | + | Danach ein diff der beiden Dateien: |
+ | |||
+ | < | ||
+ | diff / | ||
+ | </ | ||
+ | |||
+ | If nothing is printed to the console, they were found to be a pair. Any differences are printed to the console in detail. | ||
+ | |||
+ | ===== Formate und Konvertierung ===== | ||
+ | |||
+ | x509 nach pem | ||
+ | |||
+ | < | ||
+ | openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem | ||
+ | </ | ||
+ | |||
+ | Von pfx nach pem | ||
+ | |||
+ | < | ||
+ | openssl pkcs12 -in [pkcs-12-certificate-and-key-file] -out [pem-certificate-and-key-file] | ||
+ | </ | ||
+ | |||
+ | ca-certs extrahieren | ||
+ | |||
+ | < | ||
+ | openssl pkcs12 -in ${filename}.pfx -nodes -nokeys -cacerts -out ${filename}-ca.crt | ||
+ | </ | ||
+ | |||
+ | key extrahieren | ||
+ | |||
+ | < | ||
+ | openssl pkcs12 -in ${filename}.pfx -nocerts -out ${filename}.key | ||
+ | </ | ||
+ | |||
+ | cert extrahieren | ||
+ | < | ||
+ | openssl pkcs12 -in ${filename}.pfx -clcerts -nokeys -out ${filename}.crt | ||
+ | </ | ||
+ | |||
+ | ca-certs und cert zusammen kleben | ||
+ | |||
+ | < | ||
+ | cat ${filename}.crt ${filename}-ca.crt> | ||
+ | </ | ||
+ | |||
+ | Passphäse aus key löschen | ||
+ | |||
+ | < | ||
+ | openssl rsa -in ${filename}.key -out ${filename}.key | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== CA und Sub CA erstellen ===== | ||
+ | |||
+ | Mit der ServerCA lassen sich jetzt Zertifikate für Server erstellen. Diese sollten - weil sie ihren Private Key ohne menschliches Zutun benutzen müssen - keine Passphrase haben. Dies geschieht durch Weglassen des Verschlüsselungs-Algoritmus beim Erstellen des Private Key. Ansonsten sind das auch nur normale Zertifikate. Allerdings werden sie nicht von der RootCA, sondern von der ServerCA signiert. | ||
+ | |||
+ | |||
+ | ===== Apache mit mod_ssl ===== | ||
xxx | xxx | ||
- | ====== Apache mit mTLS ====== | + | ===== Apache mit mTLS ===== |
https:// | https:// | ||
+ | ===== EASYrsa (openvpn) ===== | ||
+ | xxx | ||
+ | |||
+ | ===== SSL Test mit openssl s_client ===== | ||
+ | |||
+ | xxx |