openssl2

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
openssl2 [26/02/2025 - 10:39] – angelegt support_netzwissen.deopenssl2 [02/03/2025 - 17:57] (aktuell) – [Formate und Konvertierung] thommie_netzwissen.de
Zeile 1: Zeile 1:
 ====== Nützliche openssl Befehle ====== ====== Nützliche openssl Befehle ======
  
 +===== Schlüssel erzeugen =====
 +
 +<code>
 +openssl genrsa -aes256 -out dvsdnet.devoteam.de.key.pem
 +</code>
 +
 +Bei RSA Schlüsseln wird automatisch ein Passwort abgefragt. Das kann man in einem zweiten Schritt wieder entfernen:
 +
 +<code>
 +openssl rsa -in ${filename}.key -out ${filename}.key
 +</code>
 +
 +ECDSA (elliptic curve)
 +
 +Diese Schlüssel sind kleiner, bein Erzeugen wird kein Passwort verlangt
 +
 +<code>
 +openssl ecparam -name prime256v1 -genkey -noout -out key.pem
 +</code>
 +
 +ec Key **mit** Passwort erzeugen
 +
 +<code>
 +openssl ecparam -name prime256v1 -genkey | openssl ec -aes256 -out key.pem
 +</code>
 +
 +===== Certificate Signing Request =====
 +
 +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
 +<code>
 +openssl req -nodes -new -newkey rsa:2048 -sha256 -out csr.pem
 +</code>
 +
 +<code>
 +''openssl req -new -key private/openvpn_client_odysseus.key -out certs/openvpn_client_odysseus.req.pem -days 730 ''
 +</code>
 +
 +Achtung bei openvpn: CN muß mit "locutusvpn" beginnen, da die im Server geprüft wird (Server Parameter –verify-x509-name locutusvpn name-prefix)
 +
 +Mit separater cnf Datei
 +
 +<code>
 +[ req ]
 +default_bits           = 2048
 +default_keyfile        = privkey.key
 +distinguished_name     = req_distinguished_name
 +attributes             = req_attributes
 +req_extensions         = v3_ca
 +
 +dirstring_type = nobmp
 +
 +[ req_distinguished_name ]
 +C                      = DE
 +ST                     = Baden-Wuerttemberg
 +L                      = Stuttgart
 +O                      = Mercedes-Benz Group AG
 +CN                     = Common Name
 +emailAddress           = test@email.address
 +
 +[ req_attributes ]
 +challengePassword              = A challenge password
 +challengePassword_min          = 4
 +challengePassword_max          = 20
 +
 +[ v3_ca ]
 +
 +subjectKeyIdentifier = hash
 +basicConstraints = CA:false
 +keyUsage = nonRepudiation, digitalSignature, keyEncipherment
 +</code>
 +
 +===== Signieren über eigene CA =====
 +
 +''openssl x509 -req -in certs/openvpn_client_odysseus.req.pem -CA certs/RootCA.cert.pem -CAkey private/RootCA.key.pem -out certs/openvpn_client_odysseus.cert.pem -days 720 ''
 +
 +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.
 +
 +''mv newcerts/01.pem certs/ cd certs ln -s 01.pem `openssl x509 -hash -noout -in 01.pem`.0 ''
 +
 +===== Checks =====
 +
 +Inhalt kontrollieren
 +
 +Auf der Shell im Klartext lesen: bei CERTs mit "x509", bei CSRs mit "req"
 +
 +<code>
 +openssl x509 -text -noout -in ca.crt
 +openssl req -text -noout -verify -in csr.pem
 +</code>
 +
 +Check: Passen key und crt zusammen?
 +
 +Replace <public.crt> with the filename of the public certificate.
 +
 +<code>
 +openssl x509 -noout -modulus -in <public.crt> | openssl md5> /tmp/crt.pub
 +openssl rsa -noout -modulus -in <private.key> | openssl md5> /tmp/key.pub
 +</code>
 +
 +Danach ein diff der beiden Dateien:
 +
 +<code>
 +diff /tmp/crt.pub /tmp/key.pub
 +</code>
 +
 +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
 +
 +<code>
 +openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
 +</code>
 +
 +Von pfx nach pem
 +
 +<code>
 +openssl pkcs12 -in [pkcs-12-certificate-and-key-file] -out [pem-certificate-and-key-file]
 +</code>
 +
 +ca-certs extrahieren
 +
 +<code>
 +openssl pkcs12 -in ${filename}.pfx -nodes -nokeys -cacerts -out ${filename}-ca.crt
 +</code>
 +
 +key extrahieren
 +
 +<code>
 +openssl pkcs12 -in ${filename}.pfx -nocerts -out ${filename}.key
 +</code>
 +
 +cert extrahieren
 +<code>
 +openssl pkcs12 -in ${filename}.pfx -clcerts -nokeys -out ${filename}.crt
 +</code>
 +
 +ca-certs und cert zusammen kleben
 +
 +<code>
 +cat ${filename}.crt ${filename}-ca.crt> ${filename}-full.crt
 +</code>
 +
 +Passphäse aus key löschen
 +
 +<code>
 +openssl rsa -in ${filename}.key -out ${filename}.key
 +</code>
 +
 +
 +===== 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
 +
 +===== Apache mit mTLS =====
 +
 +https://vignesh-thirunavukkarasu.medium.com/mtls-with-apache-http-server-fbfd702106ca
 +
 +===== EASYrsa (openvpn) =====
 +
 +xxx
 +
 +
 +===== SSL Test mit openssl s_client =====
 +
 +xxx
  • openssl2.1740566352.txt.gz
  • Zuletzt geändert: 26/02/2025 - 10:39
  • von support_netzwissen.de