====== Szenario 3.4: S/MIME-Zertifikat ausstellen ======
**Kategorie:** [[.:start|Zertifikate ausstellen]] \\
**Komplexität:** ⭐⭐⭐ (Mittel-Hoch) \\
**Voraussetzungen:** CSR mit E-Mail-Adresse \\
**Geschätzte Zeit:** 10-15 Minuten
----
===== Beschreibung =====
Dieses Szenario beschreibt die Ausstellung eines **S/MIME-Zertifikats** für E-Mail-Verschlüsselung und -Signierung. S/MIME-Zertifikate ermöglichen sichere E-Mail-Kommunikation durch digitale Signaturen und Verschlüsselung.
**Funktionen:**
* E-Mail-Signierung (Authentizität, Integrität)
* E-Mail-Verschlüsselung (Vertraulichkeit)
* Absender-Verifikation
----
===== Code-Beispiel (C#) =====
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
using var ctx = PqCryptoContext.Initialize();
var caCert = ctx.LoadCertificate("user-ca.crt.pem");
var caKey = ctx.LoadPrivateKey("user-ca.key.pem", "CaPassword!");
var csr = ctx.LoadCertificateRequest(File.ReadAllText("smime.csr.pem"));
// S/MIME-Zertifikat ausstellen
var smimeCert = ctx.IssueCertificate(
csr,
issuerCert: caCert,
issuerKey: caKey,
serialNumber: ctx.GenerateSerialNumber(),
validDays: 365,
extensions: new ExtBuilder()
.BasicConstraints(ca: false, critical: true)
// Key Usage für Signierung UND Verschlüsselung
.KeyUsage(
KeyUsageFlags.DigitalSignature |
KeyUsageFlags.KeyEncipherment |
KeyUsageFlags.DataEncipherment,
critical: true
)
// Extended Key Usage: Email Protection
.ExtendedKeyUsage(ExtKeyUsage.EmailProtection)
// E-Mail-Adresse als SAN (PFLICHT für S/MIME!)
.SubjectAlternativeName(new[] {
"email:max.mustermann@example.com"
})
.SubjectKeyIdentifier(csr.PublicKey)
.AuthorityKeyIdentifier(caCert)
.Build()
);
smimeCert.ToPemFile("smime.crt.pem");
// PFX für E-Mail-Client-Import
var pfx = ctx.ExportToPfx(smimeCert, smimeKey, new[] { caCert }, "Password!");
File.WriteAllBytes("smime.pfx", pfx);
----
===== S/MIME Zertifikatstypen =====
^ Typ ^ Validierung ^ Verwendung ^
| Class 1 | E-Mail-Kontrolle | Persönlich, kostenlos |
| Class 2 | Identitätsprüfung | Business |
| Class 3 | Erweiterte Prüfung | Enterprise, Qualifiziert |
----
===== Key Usage Details =====
^ Flag ^ Verwendung bei S/MIME ^
| digitalSignature | E-Mail signieren |
| keyEncipherment | Session Key verschlüsseln (RSA) |
| dataEncipherment | Daten direkt verschlüsseln |
| nonRepudiation | Rechtsgültige Signatur (optional) |
----
===== Outlook / Thunderbird Import =====
1. PFX-Datei doppelklicken
2. Importassistent folgen
3. Passwort eingeben
4. "Automatisch Speicher wählen"
5. In Outlook: Datei → Optionen → Trust Center → E-Mail-Sicherheit
----
===== Verwandte Szenarien =====
^ Beziehung ^ Szenario ^ Beschreibung ^
| **Verwandt** | [[de:int:pqcrypt:szenarien:signaturen:dokument_signieren|8.1 Dokument signieren]] | E-Mail als Dokument |
| **Verwandt** | [[de:int:pqcrypt:szenarien:verschluesselung:hybrid_encryption|7.1 Hybrid-Encryption]] | E-Mail-Verschlüsselung |
| **Voraussetzung** | [[de:int:pqcrypt:szenarien:csr:csr_client|2.2 Client-CSR]] | CSR mit E-Mail |
----
<< [[.:codesign_cert|← 3.3 Code-Signing]] | [[.:start|↑ Zertifikate-Übersicht]] | [[.:wildcard_cert|3.5 Wildcard-Zertifikat →]] >>
{{tag>szenario zertifikat smime email verschluesselung signatur}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//