openssl2

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
openssl2 [26/02/2025 - 10:52] support_netzwissen.deopenssl2 [02/03/2025 - 17:57] (aktuell) – [Formate und Konvertierung] thommie_netzwissen.de
Zeile 3: Zeile 3:
 ===== Schlüssel erzeugen ===== ===== Schlüssel erzeugen =====
  
-RSA+<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) 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 ===== ===== 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
 +<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 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 ===== ===== 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 ===== ===== Checks =====
Zeile 19: Zeile 88:
 Inhalt kontrollieren Inhalt kontrollieren
  
-Passen key und crt zusammen?+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 ===== ===== 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>
  
-xxx 
  
 ===== CA und Sub CA erstellen ===== ===== CA und Sub CA erstellen =====
  
-xxx+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 ===== ===== Apache mit mod_ssl =====
Zeile 38: Zeile 169:
 https://vignesh-thirunavukkarasu.medium.com/mtls-with-apache-http-server-fbfd702106ca https://vignesh-thirunavukkarasu.medium.com/mtls-with-apache-http-server-fbfd702106ca
  
 +===== EASYrsa (openvpn) =====
  
 +xxx
  
 +
 +===== SSL Test mit openssl s_client =====
 +
 +xxx
  • openssl2.1740567154.txt.gz
  • Zuletzt geändert: 26/02/2025 - 10:52
  • von support_netzwissen.de