Benutzer-Werkzeuge

Webseiten-Werkzeuge


openssl

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
openssl [2025/04/12 11:58]
jango [CA erstellen]
openssl [2025/07/03 11:59] (aktuell)
jango [ExtendedKeyUsage]
Zeile 1: Zeile 1:
-Siehe auch [[ssl|SSL]]+Siehe auch [[ssl|SSL]], [[OpenSSL]], [[x509]], [[CA]]
  
 {{openssl.zip|OpenSSL}} {{openssl.zip|OpenSSL}}
Zeile 86: Zeile 86:
  
 =====Zertifikat===== =====Zertifikat=====
 +
 +====Self Signed====
  
 Konfiguration erstellen. Konfiguration erstellen.
Zeile 111: Zeile 113:
 </code> </code>
  
-=====CA erstellen=====+====Key Usage====
  
-Siehe [[x509]]+<box green>Beim Erstellen eines Certificate Signing Request (CSR) mit OpenSSL kann man im keyUsage Feld festlegen, wofür das Zertifikat verwendet werden darf.</box> 
 + 
 +keyUsage ist eine X.509 v3 Extension, die festlegt, welche kryptografischen Operationen der Schlüssel ausführen darf. 
 + 
 +===KeyUsage=== 
 + 
 +^Wert^Bedeutung^ 
 +| digitalSignature | Unterschreiben von Daten (z.B. TLS-Handshake, E-Mail) | 
 +| nonRepudiation   | Beweis der Herkunft (nicht abstreitbar)               | 
 +| keyEncipherment  | Verschlüsselung von Schlüsseln (RSA Key Transport)    | 
 +| dataEncipherment | Direktes Verschlüsseln von Nutzdaten                  | 
 +| keyAgreement     | Schlüsselvereinbarung (Diffie-Hellman, ECDH)          | 
 +| keyCertSign      | Signieren von Zertifikaten (CA-Funktion)              | 
 +| cRLSign          | Signieren von Certificate Revocation Lists            | 
 +| encipherOnly     | Nur Verschlüsselung bei Schlüsselvereinbarung         | 
 +| decipherOnly     | Nur Entschlüsselung bei Schlüsselvereinbarung         | 
 + 
 +===ExtendedKeyUsage=== 
 + 
 +| Wert                    | Bedeutung                                                       | 
 +| **serverAuth**          | Authentifizierung eines Servers (z. B. HTTPS-Serverzertifikat) 
 +| **clientAuth**          | Authentifizierung eines Clients (z. B. VPN- oder E-Mail-Client) | 
 +| **codeSigning**         | Signieren von Software oder Skripten                            | 
 +| **emailProtection**     | S/MIME – Schutz und Signatur von E-Mails                        | 
 +| **timeStamping**        | Signieren von Zeitstempeln (z. B. bei Signaturerstellung)       | 
 +| **OCSPSigning**         | Signieren von OCSP-Responses                                    | 
 +| **msSGC**               | Microsoft Server Gated Cryptography (veraltet)                  | 
 +| **nsSGC**               | Netscape Server Gated Cryptography (veraltet)                   | 
 +| **ipsecEndSystem**      | IPsec-Schlüssel für Endsystem (IKE)                             | 
 +| **ipsecTunnel**         | IPsec-Schlüssel für Tunnelmodus                                 | 
 +| **ipsecUser**           | IPsec-Schlüssel für Benutzer                                    | 
 +| **anyExtendedKeyUsage** | Beliebiger Zweck erlaubt (kommt selten vor, unscharf)           | 
 +| **smartcardLogon**      | Authentifizierung via Smartcard                                 | 
 +| **documentSigning**     | Signieren von Dokumenten                                        | 
 +| **secureEmail**         | Alternative Bezeichnung für emailProtection (RFC 5280)          | 
 + 
 + 
 +===Beispiele=== 
 + 
 +Webserver-Zertifikat (TLS/SSL): 
 + 
 +<code> 
 +keyUsage = digitalSignature, keyEncipherment 
 +</code> 
 + 
 +CA-Zertifikat: 
 + 
 +<code> 
 +keyUsage = keyCertSign, cRLSign 
 +</code> 
 + 
 +Code Signing: 
 + 
 +<code> 
 +keyUsage = digitalSignature 
 +</code> 
 + 
 +====CSR==== 
 + 
 +Einen CSR (Certificate signing request) erstellen. 
 +===OpenSSL Konfig=== 
 + 
 +==Webserver== 
 +<code> 
 +req ] 
 +default_bits        = 4096 
 +prompt              = no 
 +default_md          = sha256 
 +distinguished_name  = dn 
 +req_extensions      = req_ext 
 + 
 +dn ] 
 +CN = www.zarat.at 
 +O = Zarat 
 +C = AT 
 + 
 +[ req_ext ] 
 +keyUsage = critical, digitalSignature, keyEncipherment 
 +extendedKeyUsage = serverAuth 
 +subjectAltName = @alt_names 
 + 
 +[ alt_names ] 
 +DNS.1 = www.zarat.at 
 +DNS.2 = zarat.at 
 +</code> 
 + 
 +==DocumentSigning== 
 + 
 +<code> 
 +[ req ] 
 +default_bits        = 4096 
 +prompt              = no 
 +default_md          = sha256 
 +distinguished_name  = dn 
 +req_extensions      = req_ext 
 + 
 +[ dn ] 
 +CN = Zarat Signatur 
 +O = Zarat 
 +C = AT 
 + 
 +[ req_ext ] 
 +keyUsage = critical, digitalSignature 
 +extendedKeyUsage = codeSigning 
 +subjectAltName = @alt_names 
 + 
 +[ alt_names ] 
 +DNS.1 = zarat.at 
 +</code> 
 + 
 +CSR generieren. 
 +<code bash> 
 +openssl req -new -key private.key -out signing.csr -config openssl-csr.cnf 
 +</code> 
 + 
 +Diesen CSR sendet man an die CA. 
 +=====CA erstellen=====
  
 ROOT-CA Config ROOT-CA Config
Zeile 204: Zeile 322:
 pause pause
 </code> </code>
 +
 +=====Links=====
 +
 +  * [[https://docs.openssl.org/3.4/man1/openssl/#standard-commands|Docs]]
openssl.1744451907.txt.gz · Zuletzt geändert: 2025/04/12 11:58 von jango