Ein selbstsigniertes Zertifikat ist eines, das Sie selbst erstellen — Sie agieren als Ihre eigene Zertifizierungsstelle. Ein CA-signiertes Zertifikat wird von einer vertrauenswuerdigen Zertifizierungsstelle (wie Let’s Encrypt oder DigiCert) ausgestellt und signiert, der Browser bereits vertrauen.
Der praktische Unterschied: Selbstsignierte Zertifikate loesen Sicherheitswarnungen im Browser aus. CA-signierte Zertifikate nicht.
Vergleich
| Selbstsigniert | CA-signiert | |
|---|---|---|
| Erstellt von | Ihnen (openssl-Befehl) | Einer vertrauenswuerdigen CA |
| Browser-Vertrauen | Warnung: “Nicht vertrauenswuerdig” | Schloss-Symbol |
| Verschluesselungsstaerke | Gleich | Gleich |
| Kosten | Kostenlos | Kostenlos (Let’s Encrypt) oder kostenpflichtig |
| Validierung | Keine — Sie buergen fuer sich selbst | CA verifiziert Domain/Organisation |
| Anwendungsfall | Entwicklung, intern, Tests | Produktions-Websites |
| Erneuerung | Manuell (Sie legen die Gueltigkeit fest) | 90 Tage (LE) oder 1 Jahr (kostenpflichtig) |
| Man-in-the-Middle-Schutz | Schwach — Benutzer werden trainiert, Warnungen wegzuklicken | Stark — Warnungen nur bei echten Problemen |
Warum selbstsignierte Zertifikate Warnungen anzeigen
Browser vertrauen Zertifikaten basierend darauf, wer sie signiert hat. Ihr Betriebssystem und Browser werden mit einer Liste von ~100-150 vertrauenswuerdigen Root-CAs ausgeliefert. Wenn ein Server ein Zertifikat praesentiert, das von einer dieser CAs signiert ist, zeigt der Browser ein Schloss an.
Ein selbstsigniertes Zertifikat ist von keiner vertrauenswuerdigen CA signiert — es ist mit seinem eigenen privaten Schluessel signiert. Der Browser hat keine Moeglichkeit zu verifizieren, dass das Zertifikat legitim ist, daher zeigt er eine Warnung an. Dies ist das korrekte Verhalten — ohne CA-Verifizierung koennte jeder ein Zertifikat erstellen, das behauptet, google.com zu sein.
Wann selbstsignierte Zertifikate verwenden
Interne Dienste
Dienste, die nicht dem Internet ausgesetzt sind — interne Dashboards, Monitoring-Tools, Datenbank-Admin-Panels. Ihr Team kann die selbstsignierte CA zu seinen Vertrauensspeichern hinzufuegen.
Entwicklung und Tests
Schnelles HTTPS fuer die lokale Entwicklung, wenn Sie mkcert nicht einrichten moechten. Die Browserwarnung ist laestig, aber funktional fuer Tests.
IoT und eingebettete Geraete
Geraete, die mit einem bekannten Server kommunizieren und das Zertifikat pinnen koennen — kein Browser-Vertrauensspeicher beteiligt.
Air-Gapped-Netzwerke
Netzwerke ohne Internetzugang, bei denen das ACME-Protokoll von Let’s Encrypt nicht erreichbar ist. Selbstsigniert ist die einzige Option.
Wann KEINE selbstsignierten Zertifikate verwenden
Jede oeffentlich zugaengliche Website
Benutzer sehen eine beaengstigende Warnung und verlassen die Seite. Suchmaschinen crawlen moeglicherweise keine HTTPS-Seiten mit nicht vertrauenswuerdigen Zertifikaten. Es gibt keinen Grund, selbst zu signieren, wenn Let’s-Encrypt-Zertifikate kostenlos sind.
Jede Seite, die Benutzerdaten verarbeitet
Selbstsignierte Zertifikate trainieren Benutzer dazu, Sicherheitswarnungen wegzuklicken — das Gegenteil von guter Sicherheit. Wenn ein echter Angriff eine Warnung ausloest, werden Benutzer, die daran gewoehnt sind, “Trotzdem fortfahren” zu klicken, es nicht bemerken.
Wie man ein selbstsigniertes Zertifikat erstellt
# ECDSA (empfohlen)
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout key.pem -out cert.pem -days 365 -nodes \
-subj "/CN=internal.example.com" \
-addext "subjectAltName=DNS:internal.example.com,IP:10.0.0.5"
# RSA
openssl req -x509 -newkey rsa:2048 \
-keyout key.pem -out cert.pem -days 365 -nodes \
-subj "/CN=internal.example.com"
Verwenden Sie die resultierenden cert.pem und key.pem in Ihrer Server-Konfiguration. Hinweis: fullchain.pem und chain.pem werden nicht benoetigt — es gibt keine Kette bei selbstsignierten Zertifikaten.
Bessere Alternativen fuer jedes Szenario
| Szenario | Statt selbstsigniert verwenden Sie |
|---|---|
| Produktions-Website | Let’s Encrypt via GetHTTPS — kostenlos, vertrauenswuerdig, 5 Minuten |
| Lokale Entwicklung | mkcert — lokal vertrauenswuerdig, keine Warnungen |
| Interne Dienste | Let’s Encrypt (wenn internet-zugaenglich) oder eine private CA |
| Tests/Staging | Let’s-Encrypt-Staging-Umgebung — unbegrenzte Testzertifikate |
Selbstsignierte Zertifikate waren sinnvoll, als SSL-Zertifikate ueber 100 $/Jahr kosteten. Jetzt, da Let’s Encrypt kostenlos ist, gibt es selten einen Grund, fuer etwas anderes als wirklich isolierte Umgebungen selbst zu signieren.
Haeufig gestellte Fragen
Ist ein selbstsigniertes Zertifikat weniger sicher als ein CA-signiertes?
Die Verschluesselung ist identisch — gleiche Algorithmen, gleiche Schluesselstaerken. Der Unterschied ist Vertrauen: Ein CA-signiertes Zertifikat beweist die Identitaet des Servers ueber eine vertrauenswuerdige dritte Partei. Ein selbstsigniertes Zertifikat beweist nichts — jeder kann eines fuer jede Domain erstellen. Das Sicherheitsproblem ist nicht die Kryptographie, sondern das Fehlen der Authentifizierung.
Kann ich Browser dazu bringen, meinem selbstsignierten Zertifikat zu vertrauen?
Ja, auf Geraeten, die Sie kontrollieren. Importieren Sie das Zertifikat (oder eine selbstsignierte CA, die es signiert hat) in den Vertrauensspeicher des Betriebssystems/Browsers. Das ist es, was mkcert automatisiert. Aber Sie koennen nicht die Browser anderer Leute dazu bringen, ihm zu vertrauen — dafuer benoetigen Sie eine echte CA.
Mein Hosting-Anbieter hat mir ein selbstsigniertes Zertifikat gegeben. Ist das in Ordnung?
Nein, fuer eine oeffentliche Website. Bitten Sie Ihren Anbieter, kostenloses Let’s Encrypt zu aktivieren (die meisten Hosts unterstuetzen es). Wenn nicht, verwenden Sie GetHTTPS, um selbst ein vertrauenswuerdiges Zertifikat zu erhalten.
Warum nicht einfach eine eigene CA erstellen?
Das koennen Sie, aber Browser werden ihr nicht vertrauen, es sei denn, Sie durchlaufen den jahrelangen, teuren Prozess der Aufnahme in Browser-Vertrauensspeicher. Eine private CA funktioniert fuer interne Infrastruktur (Ihr Team installiert das Root-Zertifikat), aber nicht fuer oeffentliche Websites. Fuer oeffentliche Seiten verwenden Sie eine vertrauenswuerdige CA wie Let’s Encrypt.