Die Einrichtung von SSL für jede Website ist eine Herausforderung. Besucher, Browser und Suchmaschinen belohnen eine ordnungsgemäß Secure Sockets Layer (SSL) gesicherte Website. Früher umfasste dieser Prozess den Kauf, die Installation und Konfiguration eines SSL-Zertifikats. Mit Cloudflare SSL können Sie den SSL-Konfigurationsprozess jedoch mit nur wenigen Klicks abschließen!
In diesem Artikel erfahren Sie, wie Sie Ihre Website mit SSL-Verschlüsselung über Cloudflare konfigurieren können. Arbeiten Sie sich also zu durchgängig verschlüsselten SSL-Verbindungen nach oben!
Voraussetzungen
Um diesem Tutorial zu folgen, sind einige Voraussetzungen erforderlich:
- A Cloudflare account with an existing website and domain pointed to the Cloudflare nameservers.
- Ein Ubuntu Linux-Server mit NGINX installiert und konfiguriert. Dieses Tutorial zeigt die Verwendung von Linux und NGINX, aber der gleiche allgemeine Prozess funktioniert auch für IIS oder Apache.
Die Einrichtung von Cloudflare Universal SSL: Nur der Anfang
Es gibt mehrere Möglichkeiten, wie Sie ein SSL-Zertifikat mit Cloudflare konfigurieren können. Oft ist der schnellste Weg, sich für Universal SSL zu entscheiden. Warum? Mit Universal SSL stellt Cloudflare anstelle eines SSL-Zertifikats ein Zertifikat bereit, und der gesamte über Cloudflare gesendete Datenverkehr verwendet dieses Zertifikat.
Nach Aktivierung von Universal SSL stellt Cloudflare sowohl Besuchern als auch Suchmaschinen ein gültiges SSL-Zertifikat bereit. Außerdem ist es nicht erforderlich, den Server oder die Website zur Verwendung dieses Zertifikats zu konfigurieren – einfach genial!
1. Öffnen Sie Ihren Webbrowser und melden Sie sich im Cloudflare-Dashboard an.
2. Wählen Sie Ihre Website aus der Kontodomainliste aus, wie unten gezeigt.

3. Klicken Sie nun auf SSL/TLS, um die Verschlüsselungsoptionen Ihrer Website anzuzeigen.

4. Wählen Sie die Option Flexibel, um Universal SSL zu aktivieren. Nach der Auswahl wird die Änderung sofort wirksam. Ihre Website ist jetzt zwischen dem Browser und Cloudflare verschlüsselt!

Konfiguration der vollständigen End-to-End-SSL-Verschlüsselung
Auch wenn Universal SSL eine großartige Möglichkeit ist, Websites zu sichern, bleibt der Datenverkehr zwischen dem Server und Cloudflare unverschlüsselt. Glücklicherweise gibt es zwei Verschlüsselungsmodi, um den Datenverkehr von Cloudflare zum Server zu verschlüsseln: Volle und Volle (strengere) Verschlüsselung mit jeweils unterschiedlichen Anforderungen an die Zertifikatinstallation.
- Voll – Erfordert ein Zertifikat auf dem Server, dies kann jedoch ein selbst signiertes Zertifikat sein.
- Vollständig (streng) – Das installierte serverseitige Zertifikat muss ein gültiges Zertifikat sein.
Lassen Sie uns den Unterschied zwischen diesen Verschlüsselungen und deren Einrichtung besprechen.
Einrichten der vollständigen SSL/TLS-Verschlüsselung mit einem selbstsignierten Zertifikat
Im Gegensatz zu Universal SSL erfordert die vollständige SSL/TLS-Verschlüsselung, dass Ihr Webserver ein SSL-Zertifikat ordnungsgemäß bereitstellt, um den Datenverkehr vom Server zu Cloudflare zu verschlüsseln. Es gibt viele Möglichkeiten, dies zu erreichen, aber dieses Tutorial zeigt die Schritte auf einem Linux-Server mit NGINX.
Generierung eines selbstsignierten Zertifikats
Um die Verbindung zwischen Cloudflare und Ihrem Ursprungsserver zu verschlüsseln, benötigen Sie ein SSL-Zertifikat. Da der Vollständige SSL/TLS-Verschlüsselungsmodus das Zertifikat nicht vollständig vertrauenswürdig erfordert, können Sie ein selbstsigniertes Zertifikat verwenden, um schnell zu starten.
1. Sichere Shell (SSH) in Ihren Linux-Webserver einloggen.
2. Wechseln Sie mit dem Befehl cd
in das Standard-SSL-Verzeichnis von Ubuntu (/etc/ssl
). Führen Sie dazu den folgenden Befehl aus: cd /etc/ssl

/etc/ssl
directory3. Generieren Sie nun die öffentlichen und privaten Schlüssel für Ihre Website mit dem Befehl openssl
. Führen Sie dazu den folgenden Befehl aus:
Dieser Befehl erledigt einige Dinge:
- Erfordert ein X.509-Zertifikat, das durch den Parameter
-x509
bereitgestellt wird. - Ermöglicht es NGINX, das Zertifikat beim Starten mit dem Parameter
-nodes
zu lesen, wenn es von NGINX referenziert wird. - Gibt die Anzahl der
Tage
an, für die das Zertifikat gültig ist. - Erstellt einen neuen öffentlichen und privaten Schlüssel mit
-newkey
über 2048-Bit-RSA-Verschlüsselung (rsa:2048
). - Speichert den privaten Schlüssel unter
/etc/ssl/private/nginx-selfsigned.key
mit dem Parameter-keyout
. - Speichert den öffentlichen Schlüssel unter
/etc/ssl/certs/nginx-selfsigned.crt
unter Verwendung des Parameters-out
.
Wenn
openssl
einen harmlosen Fehler vonKann /root/.rnd nicht in RNG laden
zurückgibt, müssen Sie die Zeile#RANDFILE = $ENV::HOME/.rnd
in/etc/ssl/openssl.cnf
auskommentieren. Alle modernen Versionen vonopenssl
greifen auf das Systemgerät/dev/urandom
für zufällige Entropiedaten zurück und benötigen keine spezifische Datei zur Initialisierung.
4. Nach erfolgreichem Ausführen des Befehls wird openssl Sie um einige Informationen bitten. Im Folgenden finden Sie alle Werte, die für dieses Tutorial bereitgestellt wurden.
- Ländername:
US
- Staat oder Provinz Name:
Illinois
- Ortsname:
Bloomington
- Organisationsname:
Test Company, LLC
- Name der organisatorischen Einheit: <leer>
- Allgemeiner Name:
test.adamlistek.me
- E-Mail-Adresse:
[email protected]

5. Überprüfen Sie abschließend, ob das Zertifikat mit dem test
-Befehl existiert. Wenn der test
-Befehl (echo $?
) 0
zurückgibt, existiert die Datei wie erwartet. Sie können in dem folgenden Screenshot sehen, dass jeder Befehl einen Wert von 0 zurückgegeben hat.

Konfigurieren von NGINX
Nachdem das Zertifikat generiert und an den Speicherorten /etc/ssl/certs
und /etc/ssl/private
gespeichert wurde, muss NGINX konfiguriert werden, um das Zertifikat anzuwenden und den Inhalt der Website bereitzustellen.
NGINX-Sitekonfigurationen werden in server
-Blöcken definiert, die normalerweise in virtuellen Host-Dateien enthalten sind. Im folgenden Beispiel wird die grundlegende Sitekonfiguration in der Datei test.adamlistek.me.conf
gespeichert und in die Hauptdatei nginx.conf
einbezogen.
1. Erstellen Sie zunächst eine neue virtuelle Host-Datei mit dem von Ihnen gewählten Namen, aber für dieses Beispiel benennen Sie sie test.adamlistek.me.conf
im Verzeichnis /etc/nginx/vhosts.d
. Kopieren Sie dann den untenstehenden Inhalt in die virtuelle Host-Datei und speichern Sie sie.
Ersetzen Sie den Domainnamen
test.adamlistek.me
durch Ihren eigenen, da dies nur zu Demonstrationszwecken dient. Und wenn der/etc/nginx/vhosts.d
Speicherort nicht existiert, erstellen Sie das Verzeichnis, indem Siemkdir /etc/nginx/vhosts.d
ausführen.
2. Überprüfen Sie, ob Ihre primäre NGINX-Konfigurationsdatei, /etc/nginx/nginx.conf
, die erforderliche include
-Zeile innerhalb des http
-Blocks enthält, der sich am Ende des Blocks befindet.
3. Starten Sie NGINX mit dem folgenden Befehl neu, wenn Sie systemd verwenden, das ein moderner System- und Dienst-Manager für Linux ist.
4. Zurück zu Cloudflare, überprüfen Sie, ob das selbstsignierte Zertifikat funktioniert. Deaktivieren Sie dazu das „orange-cloud“ für den DNS-Eintrag unter Proxy-Status, wie unten gezeigt. Durch Deaktivieren der Option „orange-cloud“ umgehen Sie Cloudflare und bedienen Anfragen direkt vom Webserver.

5. Stellen Sie sicher, dass die Website das neu erstellte selbstsignierte Zertifikat zurückgibt, indem Sie zur Website in Ihrem Webbrowser navigieren. Dadurch wird eine Warnseite angezeigt, wie unten dargestellt.

6. Aktivieren Sie schließlich die Vollständige TLS/SSL-Verschlüsselung auf Cloudflare. Um dies zu tun, aktivieren Sie den „orange-cloud“ Cloudflare-Proxy-Status auf dem zuvor deaktivierten DNS-Eintrag erneut. Navigieren Sie dann zum SSL/TLS-Tab und klicken Sie auf die unten gezeigte Full-Option.

Generieren von Ursprungszertifikaten für die Vollständige (strengere) SSL/TLS-Verschlüsselung
Der Vollständige Verschlüsselungsmodus garantiert nicht, dass das vom Webserver präsentierte Zertifikat eine tatsächlich gültige Zertifikatkette hat. Wählen Sie daher die nicht-strengere Verschlüsselung, und Cloudflare akzeptiert jedes vom Server präsentierte Zertifikat.
Cloudflare bietet die Möglichkeit, ein kostenloses TLS-Zertifikat zu generieren, um die Verbindung zum Ursprungsserver zu sichern. Es gibt jedoch zwei Nachteile bei der Verwendung eines von Cloudflare bereitgestellten Ursprungszertifikats. Erstens müssen Sie das Zertifikat manuell generieren und installieren. Zweitens erscheint das Zertifikat wie ein selbstsigniertes Zertifikat, dem kein Browser außer Cloudflare vertrauen würde.
Es ist möglich, die Zertifikatserzeugung mithilfe der Origin CA Create Certificate API Endpoint zu automatisieren, aber das fällt nicht in den Rahmen dieses Tutorials.
1. Gehen Sie zu dem Ursprungsserver, indem Sie zum SSL/TLS-Tab gehen und auf Ursprungsserver klicken, wie unten dargestellt. Klicken Sie dann auf die Schaltfläche Zertifikat erstellen.

2. Wie Sie unten sehen können, sind die Standardoptionen bereits so eingestellt, dass ein Wildcard-Zertifikat für die Domain mit einer Gültigkeitsdauer von 15 Jahren generiert wird – süß! Lassen Sie also die Standardoptionen unverändert und generieren Sie das Zertifikat, indem Sie auf die Schaltfläche Erstellen unten rechts auf der Seite klicken.
A wildcard certificate, shown as
*.domain.com
, means that any subdomain will also be covered by this certificate including www.

3. Fügen Sie das neu erstellte Zertifikat zu Ihrem Linux-System hinzu, indem Sie zunächst die privaten und öffentlichen Schlüssel mit dem Texteditor GNU nano speichern. Da zwei Schlüssel gespeichert werden müssen, müssen Sie die Schlüsseldateien nacheinander speichern.
Stellen Sie sicher, dass Sie den privaten Schlüssel speichern, da er nur zum Zeitpunkt der Generierung eines Originalzertifikats verfügbar ist. Wenn Sie diesen Schlüssel versehentlich verlieren, widerrufen Sie das Zertifikat und erstellen Sie ein neues Zertifikat.
Öffnen Sie ein Terminal und erstellen und öffnen Sie die öffentliche Schlüsseldatei (nginx-test.adamlistek.me.crt
) in nano, indem Sie den ersten Befehl unten ausführen.
Gehen Sie dann zurück zu Cloudflare und kopieren Sie den Origin Certificate-Schlüssel (öffentlicher Schlüssel), indem Sie auf die Option Zum Kopieren klicken klicken, wie unten gezeigt. Fügen Sie dann (Strg+U) den kopierten öffentlichen Schlüssel in die in nano geöffnete öffentliche Schlüsseldatei ein. Speichern Sie die Änderungen (Strg+O) und beenden Sie nano (Strg+X).
Nachdem Sie die öffentliche Schlüsseldatei gespeichert haben, wiederholen Sie den gleichen Vorgang, um die Schlüsseldatei zu erstellen, den Schlüssel von Cloudfare zu kopieren und ihn in der Schlüsseldatei zu speichern. Diesmal erstellen Sie jedoch die private Schlüsseldatei (nginx-test.adamlistek.me.key
).

4. Nachdem Sie die öffentlichen und privaten Schlüssel erstellt haben, zeigen Sie NGINX den Speicherort der Zertifikate an. Tun Sie dies, indem Sie die Konfigurationsdatei test.adamlistek.me.conf
mit den unten stehenden Zeilen ändern, angepasst an Ihre Domain.
5. Um die neuen Zertifikate anzuwenden, starten Sie NGINX mit dem folgenden Befehl neu.
6. Zurück zum Tab SSL/TLS in Cloudflare. Aktualisieren Sie den SSL/TLS-Verschlüsselungsmodus, indem Sie auf Full (strict) klicken, wie unten gezeigt.

Aktivieren der Full (strict) SSL/TLS-Verschlüsselung mit LetsEncrypt
Der größte Nachteil bei Verwendung eines Cloudflare-Origin-Zertifikats besteht darin, dass es nur von Cloudflare vertraut wird. Falls Sie ein vollständig vom Browser vertrauenswürdiges Zertifikat benötigen, entweder als Rückfall oder für mehr Kontrolle, bietet LetsEncrypt die Möglichkeit, ein ordnungsgemäßes Zertifikat zu generieren.
Auch wenn Sie ein beliebiges gültiges Zertifikat verwenden können, ist LetsEncrypt eine gängige Wahl, um ein gültiges Zertifikat zu generieren. Es gibt mehrere LetsEncrypt-Clients, aber dieses Tutorial zeigt den acme.sh-Client.
Da Sie bereits auf Cloudflare sind, ist eine der besten Methoden für die DNS-Bereitstellung mit LetsEncrypt die Verwendung der DNS-Option.
1. Öffnen Sie zuerst Ihr Terminal und installieren Sie acme.sh über den curl
-Befehl.

2. Als Nächstes ist es erforderlich, die Datei account.conf
im Installationsverzeichnis zu erstellen oder zu ändern, um die gespeicherten Cloudflare-API-Schlüssel hinzuzufügen. Diese Schlüssel finden Sie im Abschnitt Profil —> API-Tokens des Cloudflare-Dashboards.
Obwohl Sie einen spezifischen, auf Berechtigungen beschränkten Token erstellen können, verwenden Sie für die Zwecke dieses Tutorials stattdessen den Globalen API-Schlüssel, wie unten gezeigt.
3. Generieren Sie das Zertifikat über den folgenden Befehl. Beachten Sie, dass der folgende Befehl dem acme.sh
-Client mitteilt, Cloudflare (dns_cf
) zur Überprüfung (--dns
) des Besitzes des Zertifikats zu verwenden. Dann wird die Wartezeit (--dnsslep
) auf 20 Sekunden festgelegt, bevor das Zertifikat für (-d
) die Domäne (test.adamlistek.me
) ausgestellt wird.
Wenn der Befehl abgeschlossen ist, sehen Sie unten die Pfade, unter denen Sie Ihr Zertifikat, das Zertifikatsschlüssel, das Zwischen-CA-Zertifikat und die vollständigen Zertifikatsketten finden können.

4. Wie zuvor, ändern Sie die NGINX-Site-Konfiguration, um den Speicherort des ssl_certificate
und des ssl_certificate_key
zu ändern. Stellen Sie sicher, dass Sie /home/user
durch den Speicherort ersetzen, an dem Ihre acme.sh-Installation stattfindet.
5. Wenden Sie die neue Konfiguration an, indem Sie NGINX mit dem folgenden Befehl neu starten.
6. Aktualisieren Sie abschließend Ihren Cloudflare SSL/TLS-Verschlüsselungsmodus, indem Sie zu SSL/TLS gehen und dann auf Vollständig (streng) klicken.

Abschluss
Im Verlauf dieses Tutorials haben Sie gelernt, wie Sie Ihre Website mit den verschiedenen von Cloudflare bereitgestellten SSL/TLS-Optionen sichern können. Durch Hinzufügen von LetsEncrypt zu Ihrer Cloudflare SSL-Konfiguration erhalten Sie eine flexible und benutzerfreundliche Ursprungszertifikatsoption!
Mit dem Wissen über verschiedene Optionen zur Absicherung der Verbindung zum Besucher der Website werden Sie sich bis zu einer vollständig gesicherten Verbindung zu Ihrem Server mit Cloudflare SSL arbeiten?