Let’s Encrypt ist eine kostenlose, automatisierte und offene Zertifizierungsstelle (CA), die zum Nutzen der Öffentlichkeit betrieben wird. Die Schlüsselprinzipien hinter Let’s Encrypt sind:
Die Schlüsselprinzipien hinter Let’s Encrypt sind kostenlos:Jeder, der einen Domainnamen besitzt, kann Let’s Encrypt verwenden, um kostenlos ein vertrauenswürdiges Zertifikat zu erhalten.
- Kostenlos: Jeder, der einen Domainnamen besitzt, kann mit Let’s Encrypt kostenlos ein vertrauenswürdiges Zertifikat erhalten.
- Automatisch: Software, die auf einem Webserver ausgeführt wird, kann mit Let’s Encrypt interagieren, um problemlos ein Zertifikat zu erhalten, es sicher für die Verwendung zu konfigurieren und sich automatisch um die Erneuerung zu kümmern.
- Sicher: Let’s Encrypt wird als Plattform für die Weiterentwicklung der Best Practices für die TLS-Sicherheit dienen, sowohl auf der CA-Seite als auch durch die Unterstützung von Website-Betreibern beim ordnungsgemäßen Sichern ihrer Server.
- Transparent: Alle ausgestellten oder widerrufenen Zertifikate werden öffentlich aufgezeichnet und stehen jedermann zur Einsichtnahme zur Verfügung.
- Geöffnet: Das automatische Ausstellungs- und Verlängerungsprotokoll wird als offener Standard veröffentlicht, den andere übernehmen können.
- Genossenschaft: Ähnlich wie die zugrunde liegenden Internetprotokolle selbst ist Let’s Encrypt eine gemeinsame Anstrengung zum Nutzen der Community, die sich der Kontrolle einer einzelnen Organisation entzieht.
(Quelle:https://letsencrypt.org/about/)
Einführung
Zunächst müssen wir einige dunkle Seiten des Let's Encrypt-Dienstes erwähnen. So großartig die Idee einer kostenlosen öffentlichen und offenen Zertifizierungsstelle auch ist, sie bringt uns auch viele Probleme. Entwickler haben versucht, das System zum Erhalten von Zertifikaten so einfach wie möglich zu gestalten, aber es erfordert immer noch eine höhere Fähigkeit zur Serververwaltung. Daher haben viele Entwickler wie der von ISPConfig (http://www.ispconfig.org/) diese Lösung direkt in ihre implementiert. Dies ermöglicht eine effektivere Bereitstellung und Überwachung des gesamten Systems, viel einfacher und flexibler.
Echte Komplikation
Viele Menschen haben sich entschieden, Let's Encrypt in ihren Produktionsstandorten zu implementieren. Ich finde das immer noch eine sehr schlechte Idee, ohne sehr (aber wirklich sehr) vorsichtig zu sein. Let's Encrypt bringt Ihnen Freiheit, schränkt Sie aber auch bei der Verwendung des Zertifikats mit SHA-256 RSA-Verschlüsselung ein. Die Unterstützung für SHA-256 hat sich in den letzten Jahren verbessert. Die meisten Browser, Plattformen, E-Mail-Clients und Mobilgeräte unterstützen bereits SHA-256. Einige ältere Betriebssysteme wie Windows XP vor SP3 unterstützen jedoch keine SHA-256-Verschlüsselung. Viele Organisationen werden in der Lage sein, auf SHA-256 umzustellen, ohne auf Probleme mit der Benutzererfahrung zu stoßen, und viele möchten Benutzern, die ältere, weniger sichere Systeme verwenden, möglicherweise empfehlen, ein Upgrade durchzuführen.
In dieser Anleitung werden wir diese Inkompatibilität auf einfache, aber immer noch unangenehme Weise behandeln.
Voraussetzungen
- Apache-Version 2.4 und höher
- OpenSSL-Version 1.0.1e und höher
- Apache mod_rewrite aktiviert
Die ganze Idee
Wie bereits erwähnt, gibt es im Internet immer noch Geräte, die mit der SHA-256-Signatur nicht kompatibel sind. Als ich gezwungen war, SSL für einige Websites bereitzustellen, musste ich mich zwischen zwei Optionen entscheiden:
- Mit Let's Encrypt kostenlos, aber nicht für alle.
- Kauf eines Zertifikats mit 128-Bit-Signatur.
Nun, immer noch die Option Nr. 1 war der einzige Weg, wie es dem Kunden vor langer Zeit versprochen wurde (:Keine Theorie mehr:
Keine Theorie mehr
Ich hoffe, ich habe das Nötige erklärt und jetzt können wir uns mit den nicht unterstützten Zuschauern unserer Website befassen. Es gibt viele Leute, die Windows XP-Rechner mit SP2 und niedriger verwenden (ja, es gibt immer noch viele davon). Also müssen wir diese Leute herausfiltern.
Fügen Sie in Ihrer „/etc/apache2/sites-available/your_domain.com.conf“ Folgendes am Ende der Datei hinzu:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !(NT\ 5) [NC]
RewriteRule ^(.*) https:// your_domain.com [R]
RewriteCond erhält eine Zeichenfolge aus dem HTTP-Header des Gastes, der auf Ihre Seite zugreift. Sie können einfach Ihre überprüfen und weitere Informationen hier finden: http://www.useragentstring.com/
Die von uns verwendete Bedingung sagt uns etwas wie „Wenn die Zeichenfolge nicht ‚NT 5‘ enthält“, dann führt RewriteRule die Regel aus, [R] auf die https-Variante Ihrer Domäne umzuleiten/anzuwenden, NT 5 ist eine Betriebssystemversionszeichenfolge für Windows XP-Geräte .Wenn Sie diese Weiterleitung nicht verwenden, können inkompatible Benutzer nicht auf Ihre https-Website zugreifen.
Wenn Sie diese Weiterleitung nicht verwenden, können inkompatible Benutzer nicht auf Ihre https-Website zugreifen. Ich muss Sie warnen, dass diese Lösung nicht 100 % perfekt ist, wie einige von
Ich muss Sie davor warnen, dass diese Lösung nicht 100 % perfekt ist, da einige Gäste Ihnen keine relevanten oder echten Informationen zur Verfügung stellen müssen. Ich habe mit AWstats zusammengearbeitet, um herauszufinden, wie viele unbekannte Systeme auf meine Seite zugreifen, und es sind ungefähr 1,3 %, also ziemlich wenige Anfragen. Wenn Sie mit unbekannten Betriebssystemen umgehen möchten, um deren Kompatibilität sicherzustellen, können Sie auch unknown in die Bedingung aufnehmen (RewriteCond %{HTTP_USER_AGENT} !(NT\ 5|unknown) [NC]).
Awstats
Nachdem Sie Ihre inkompatiblen Besucher erfolgreich „nicht umgeleitet“ haben (sie in der http-unsicheren Welt halten), können Sie sich auf die https-Seite konzentrieren.
HTTPS-Konfiguration
Nun gehen wir davon aus, dass Sie das Zertifikat bereits Ihrem Webserver zugewiesen und auch aktiviert haben.
Fügen Sie in Ihrer vhost-Konfigurationsdatei erneut Folgendes hinzu:
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLProtocol All -SSLv2 -SSLv3
SSLCompression off
SSLHonorCipherOrder On
Die hier verwendete CipherSuite ist etwas länger als üblich. Es dient der besseren Kompatibilität. Sie können Ihr eigenes erhalten von: https://cipherli.st/ oder https://mozilla.github.io/server-side-tls/ssl-config-generator/
Ich muss noch einmal erwähnen, dass Sie niemals eine perfekte Konfiguration erhalten werden, um die Hochsicherheitsrichtlinie und auch die Kompatibilität zu erfüllen. Sie sollten einen Kompromiss finden.
Nachdem Sie diese Einstellungen verwendet haben, können Sie Ihre Serverkonfiguration und Kompatibilität testen unter: https://www.ssllabs.com/ssltest/index.html
Sie werden eine lange Liste kompatibler und nicht kompatibler Geräte sowie einige weitere Informationen finden, die Sie auf Ihre eigene „perfekte“ Lösung hinweisen.