Ist es eine schlechte Praxis, selbstsignierte SSL-Zertifikate zu verwenden?

29

SSL-Zertifikate sind für Einzelpersonen ziemlich teuer, insbesondere wenn Sie verschiedene Subdomänen sichern müssen. Ich überlege, selbstsignierte Zertifikate zu verwenden, da mein Hauptaugenmerk darauf liegt, die Verbindung zu sichern und mich nicht zu authentifizieren.

Einige Browser zeigen jedoch böse Warnungen an, wenn sie auf ein solches Zertifikat stoßen. Würden Sie von der Verwendung selbstsignierter Zertifikate abraten (z. B. für kleine Webanwendungen oder die Administrationsseite einer kleinen Website)? Oder ist es in manchen Fällen in Ordnung?

Wookai
quelle

Antworten:

14

Im Allgemeinen ist es schlecht, ein selbstsigniertes Zertifikat zu verwenden. Wenn Sie dies tun, besteht das Risiko, dass Personen Ihre Website verlassen, wenn sie eine Warnung erhalten, dass Ihr Zertifikat schlecht ist. Wichtiger ist, dass Sie ein höheres Risiko eingehen, wenn jemand einen Injektionsangriff ausführt, bei dem er anstelle Ihres eigenen selbstsignierten Zertifikats ein eigenes Zertifikat verwendet und der Besucher es nicht besser weiß.

Lesen Sie den Artikel hier, http://www.sslshopper.com/article-when-are-self-signed-certificates-acceptable.html, um weitere Informationen zu erhalten.

Ben Hoffman
quelle
14

Wie RandomBen sagte, werden selbstsignierte Zertifikate aus den von ihm erklärten Gründen im Allgemeinen verpönt. Es gibt jedoch eine Situation, in der sie in Ordnung sind: Wenn die Anzahl der Personen, die vertrauliche Daten an Ihre Website senden müssen, klein und begrenzt ist, sind sie alle technisch einigermaßen kompetent und Sie können mit allen kommunizieren. In diesem Fall können Sie jeder Person die Zertifikatsdetails geben. Anschließend können sie das Zertifikat manuell überprüfen, wenn sie zu Ihrer Site gehen und gegebenenfalls eine Sicherheitsausnahme hinzufügen.

Als extremes Beispiel habe ich auf meinem persönlichen VPS eine administrative Unterdomäne, auf die nur ich zugreifen darf. Es wäre kein Problem, diese Domäne mit einem selbstsignierten Zertifikat zu sichern, da ich manuell überprüfen kann, ob das zum Sichern der Verbindung verwendete Serverzertifikat das gleiche ist, das ich auf dem Server installiert habe.

In Fällen, in denen ein selbstsigniertes Zertifikat nicht funktioniert oder Sie lieber ein "echtes" haben möchten, empfehle ich Let's Encrypt , ein Projekt, das von der Internet Security Research Group gestartet und von großen Internetunternehmen unterstützt wird und SSL-Zertifikate unter anbietet keine Kosten. Dies ist möglich, da der von ihnen verwendete Überprüfungsprozess vollständig automatisiert ist und ein Webserver, der das ACME-Protokoll unterstützt (wie Caddy , den ich derzeit verwende), Zertifikate vollständig selbst erhalten kann. Lassen Sie uns Encrypt nicht prüft , ob SieSind Sie als Person, von der Sie sagen, dass Sie es sind? Es wird nur überprüft, ob Ihr Webserver in der Lage ist, Inhalte in der Domain bereitzustellen, auf die er Anspruch erhebt. Let's Encrypt wird von allen gängigen Browsern unterstützt, es ist jedoch allgemein bekannt, dass die Überprüfung nur minimal ist. Wenn Sie also eine E-Commerce-Website oder eine Website betreiben, auf der vertrauliche Informationen gesendet werden, sollten Sie wahrscheinlich das Geld ausgeben, um eine zu erhalten Zertifikat mit einer höheren Validierungsstufe.

Früher habe ich die kostenlosen StartSSL-Zertifikate von StartCom für Leute empfohlen, die nicht mehr für die Validierung bezahlen wollten, aber nicht mehr. StartCom wurde 2016 von WoSign heimlich erworben und anschließend für mehrere Domains unzulässige Zertifikate ausgestellt. Infolgedessen haben die großen Browser die Unterstützung für StartCom-Zertifikate eingestellt. (Soweit ich weiß, hat der IE sie sowieso nie unterstützt.) Auf jeden Fall ist Let's Encrypt weitaus praktischer.

David Z
quelle
+1 für den ersten Absatz. Ich verwende ein selbstsigniertes Zertifikat für Webmin auf meinem Server, da es nur von mir und dem Designer verwendet wird. Ich würde es jedoch nicht für die allgemeine öffentliche Verwendung empfehlen.
DisgruntledGoat
3

Es ist keine schlechte Praxis, selbstsignierte Zertifikate zu verwenden. Selbstsignierte Zertifikate haben viele praktische Zwecke, für die es einfach keinen Sinn macht, ein CA-signiertes Zertifikat zu verwenden.

Auf vielen meiner Server ist beispielsweise die Anmeldung ohne Passwort eingerichtet. Dies sind Server, mit denen ich mich so häufig verbinde und zu denen manchmal mehrere SSH-Verbindungen offen sind, dass es mühsam ist, jedes Mal meinen Benutzernamen und mein Kennwort einzugeben.

Stattdessen verwende ich ein selbstsigniertes SSL-Zertifikat, das ich auf jedem meiner Client-Computer (einer Arbeitsstation im Büro, einem Laptop und meiner Heimarbeitsstation) generiere. Diese Art der Einrichtung ermöglicht es mir, ziemlich lange, sichere und vollständig eindeutige Passphrasen für jeden meiner Server zu verwenden, ohne die Produktivität zu beeinträchtigen. Und da ich direkten Zugriff auf die Server habe, auf denen ich den öffentlichen Schlüssel für jedes Zertifikat installieren kann, ist es sinnlos, ein von einer Zertifizierungsstelle signiertes Zertifikat zu verwenden.

Ich könnte meine eigene Stammzertifizierungsstelle einrichten, mit der ich alle internen Verwendungszertifikate für unser Unternehmen signieren kann. Auf diese Weise müsste ich nur einen einzigen öffentlichen Schlüssel auf jedem Server installieren. Unsere Organisation ist jedoch nicht auf die Größe angewachsen, die dies wirklich erfordert, und für die Zwecke von sicherem HTTP wäre dies immer noch dasselbe wie ein selbstsigniertes Zertifikat.

Ebenso werden selbstsignierte Zertifikate häufig für E-Mail-Verbindungen, PGP-Signaturen und Server-zu-Server-Verbindungen verwendet, bei denen der Austausch öffentlicher Schlüssel vorab keine Rolle spielt. In vielen dieser Fälle ist dies tatsächlich sicherer, als sich auf eine Zertifikatskette zu verlassen, die an jedem Punkt in der Kette gefährdet sein könnte.

Majestätsbeleidigung
quelle
Ich verstehe nicht, warum Sie in Ihrem Fall SSL-Zertifikate verwenden? Sie erwähnen, dass Sie Ihr Passwort nicht mehrmals eingeben möchten: Sie können einfach einen privaten SSH-Schlüssel mit ssh-agent verwenden, um sich auf jedem Server automatisch zu authentifizieren, ohne Ihr Passwort mehrmals eingeben zu müssen.
Wookai
@Wookai: Das wäre eine Möglichkeit für SSH, aber die Verwendung von SSL-Client-Zertifikaten ist eine viel allgemeinere Methode zur Client-Authentifizierung. Ich verwende meine Client-Zertifikate auch für die HTTPS-Authentifizierung sowie für E-Mails. Wenn ich später eine interne Zertifizierungsstelle einrichte, wird diese noch flexibler und leistungsfähiger. Zu diesem Zeitpunkt muss nicht für jeden Client / Benutzer ein eigener privater Schlüssel installiert werden. Es ist nur eine robustere Lösung IMO.
Majestätsbeleidigung
2

Wenn Sie mehrere Subdomains sichern, können Sie Platzhalterzertifikate verwenden , die (abhängig von der Anzahl der zu sichernden Subdomains) erheblich günstiger sind als der Kauf einer pro Domain. Beispiel: Bei RapidSSL wird der Platzhalter billiger als die einzelnen Zertifikate, sobald Sie vier Domains verwenden.

Cebjyre
quelle