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/07/02 11:10]
jango [CSR]
openssl [2025/07/03 11:59] (aktuell)
jango [ExtendedKeyUsage]
Zeile 111: Zeile 111:
 <code> <code>
 openssl req -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -config openssl.cnf openssl req -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -config openssl.cnf
 +</code>
 +
 +====Key Usage====
 +
 +<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> </code>
  
Zeile 116: Zeile 175:
  
 Einen CSR (Certificate signing request) erstellen. Einen CSR (Certificate signing request) erstellen.
 +===OpenSSL Konfig===
  
-OpenSSL Konfig +==Webserver==
 <code> <code>
 [ req ] [ req ]
Zeile 140: Zeile 199:
 DNS.1 = www.zarat.at DNS.1 = www.zarat.at
 DNS.2 = 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> </code>
  
openssl.1751447404.txt.gz · Zuletzt geändert: 2025/07/02 11:10 von jango