X
X
X
X

So hosten Sie eine Website mit Cloudflare und Nginx unter Ubuntu

StartseiteArtikelHostingSo hosten Sie eine Website mit Clou...

Anmeldung
Cloudflare ist ein Dienst, der zwischen dem Besucher und dem Server des Websitebesitzers sitzt und als Reverse-Proxy für Websites fungiert. Cloudflare bietet DDoS-Minderung und verteilte Domain Name Server-Dienste sowie ein Content Delivery Network (CDN).

Nginx ist ein beliebter Webserver, der für das Hosten einiger der größten und verkehrsreichsten Websites im Internet verantwortlich ist. Es ist üblich, dass Organisationen ihre Websites mit Nginx bedienen und Cloudflare als ihren CDN- und DNS-Anbieter verwenden.

In diesem Tutorial sichern Sie Ihre von Nginx bereitgestellte Website mit einem Origin-CA-Zertifikat von Cloudflare und konfigurieren Nginx für die Verwendung authentifizierter Pull-Requests. Die Vorteile dieser Einrichtung bestehen darin, dass Sie alle Verbindungen über Cloudflare erhalten und gleichzeitig das CDN von Cloudflare und die schnelle DNS-Auflösung nutzen. Dadurch wird verhindert, dass böswillige Anfragen Ihren Server erreichen.

Voraussetzungen
Sie benötigen Folgendes, um dieses Tutorial abzuschließen:

Ein Ubuntu 16.04-Server wurde gemäß der Ubuntu 16.04-Anleitung für die Ersteinrichtung des Servers installiert, einschließlich eines sudo-Nicht-Root-Benutzers und einer Firewall.
Nginx ist auf Ihrem Server installiert, wie in So installieren Sie Nginx unter Ubuntu 16.04 gezeigt.
Ein Cloudflare-Konto.
Eine registrierte Domain, die Ihrem Cloudflare-Konto hinzugefügt wurde und auf Ihren Nginx-Server verweist. Um dies einzurichten, sehen Sie sich an, wie Sie DDoS-Angriffe auf Ihre Website mit CloudFlare abschwächen.
Ein für Ihre Domäne konfigurierter Nginx-Serverblock, den Sie tun können, indem Sie So installieren Sie Nginx-Serverblöcke (virtuelle Hosts) in Ubuntu 16.04.
Schritt 1 – Erstellen eines Origin CA TLS-Zertifikats
Cloudflare Origin CA ermöglicht es Ihnen, ein kostenloses Cloudflare-signiertes TLS-Zertifikat zum Hochladen auf Ihren Nginx-Server zu generieren. Mit dem von Cloudflare generierten TLS-Zertifikat können Sie die Verbindung zwischen Cloudflare-Servern und Ihrem Nginx-Server sichern.

Um ein Zertifikat mit Origin CA zu generieren, gehen Sie zum Abschnitt Crypto Ihres Cloudflare-Kontrollfelds. Klicken Sie dort im Abschnitt Ursprungszeugnisse auf die Schaltfläche Zertifikat erstellen:

 

Lassen Sie die Standardoption CloudFlare erlauben, einen privaten Schlüssel und eine CSR zu generieren, ausgewählt.

 

 

Klicken Sie auf Weiter und Sie sehen ein Dialogfeld mit dem Ursprungszertifikat und dem privaten Schlüssel. Sie müssen sowohl das Ursprungszertifikat als auch den privaten Schlüssel von CloudFlare auf Ihren Server importieren.

 

/etc/ssl/certsWir verwenden das Verzeichnis auf dem Server, um das Ursprungszertifikat zu speichern. Das Verzeichnis /etc/ssl/private bearbeitet die private Schlüsseldatei. Beide Ordner sind bereits auf dem Server vorhanden.

Kopieren Sie zunächst den Inhalt des Ursprungszeugnisses, das im Dialogfeld Ihres Browsers angezeigt wird.

Öffnen Sie dann /etc/ssl/certs/cert.pem zur Bearbeitung auf Ihrem Server:

sudo nano /etc/ssl/certs/cert.pem

Kopieren
Fügen Sie den Zertifikatsinhalt in die Datei ein. Anschließend speichern und den Editor verlassen.

Kehren Sie dann zu Ihrem Browser zurück und kopieren Sie den Inhalt des privaten Schlüssels. /etc/ssl/private/key.pem Öffnen Sie die Datei zum Bearbeiten:

sudo nano /etc/ssl/private/key.pem

Kopieren
Fügen Sie den Schlüssel in die Datei ein, speichern Sie die Datei und verlassen Sie den Editor.

Warnung: Das Ursprungs-CA-Zertifikat von Cloudflare wird nur von Cloudflare vertraut und sollte daher nur von Origin-Servern verwendet werden, die aktiv mit Cloudflare verbunden sind. Wenn Sie Cloudflare zu irgendeinem Zeitpunkt anhalten oder deaktivieren, gibt Ihr Ursprungs-CA-Zertifikat einen nicht vertrauenswürdigen Zertifikatsfehler zurück.

Nachdem Sie die Schlüssel- und Zertifikatsdateien auf Ihren Server kopiert haben, müssen Sie die Nginx-Konfiguration aktualisieren, um sie zu verwenden.

Schritt 2 – Laden Sie das Ursprungs-CA-Zertifikat auf Nginx hoch
Im vorherigen Abschnitt haben Sie mit dem Control Panel von Cloudlfare ein Ressourcenzertifikat und einen privaten Schlüssel erstellt und die Dateien auf Ihrem Server gespeichert. Sie aktualisieren nun die Nginx-Konfiguration Ihrer Site, um das Ursprungszertifikat und den privaten Schlüssel zu verwenden, um die Verbindung zwischen Cloudflare-Servern und Ihrem Server zu sichern.

Nginx erstellt während der Installation einen Standardserverblock. Wenn Sie bereits einen dedizierten Serverblock für Ihre Domain konfiguriert haben, entfernen Sie ihn:

sudo rm /etc/nginx/sites-enabled/default

Kopieren
Öffnen Sie als Nächstes die Nginx-Konfigurationsdatei für Ihre Domain:

sudo nano /etc/nginx/sites-available/example.com

Kopieren
Die Datei sollte so aussehen:

example.com'>/etc/nginx/sites-available/example.com
Server {
hören 80;
zuhören [::]:80;

root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;

servername example.com www.example.com;

Lage / {
try_files $uri $uri/ =404;
}
}

Kopieren
Wir werden die Nginx-Konfigurationsdatei ändern, um Folgendes zu tun:

Lauschen Sie auf Port 80 und alle Anfragen an https.
Hören Sie Port 443 ab und verwenden Sie das Quellzertifikat und den privaten Schlüssel, die Sie im vorherigen Abschnitt hinzugefügt haben.
Sehen Sie sich die Datei wie unten an

ändere es in:

example.com'>/etc/nginx/sites-available/example.com
Server {
hören 80;
zuhören [::]:80;
servername example.com www.example.com;
302 https://$server_name$request_uri zurückgeben;
}

Server {

# SSL-Konfiguration

Hören Sie 443 SSL http2;
anhören [::]:443 ssl http2;
ssl an;
SSL-Zertifikat /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/private/key.pem;

servername example.com www.example.com;

root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;


Lage / {
try_files $uri $uri/ =404;
}
}

Kopieren
Speichern Sie die Datei und beenden Sie den Editor.

Testen Sie dann, ob in Ihren Nginx-Konfigurationsdateien keine Syntaxfehler enthalten sind:

sudo nginx -t

Kopieren
Wenn keine Probleme gefunden werden, starten Sie Nginx neu, um Ihre Änderungen zu aktivieren:

sudo systemctl Neustart nginx

Kopieren
Gehen Sie nun zum Abschnitt Krypto im Cloudflare-Dashboard und ändern Sie den SSL-Modus auf Voll. Dies weist Cloudflare an, die Verbindung zwischen Cloudflare und Ihrem startenden Nginx-Server immer zu verschlüsseln.

 

Um zu überprüfen, ob sie korrekt eingerichtet wurde, besuchen Sie Ihre Website unter Ihre Homepage wird angezeigt und der Browser meldet, dass die Site sicher ist.https://example.com

Im nächsten Abschnitt richten Sie Authenticated Origin Pulls ein, um zu überprüfen, ob Ihr Ursprungsserver tatsächlich mit Cloudflare und nicht mit einem anderen Server kommuniziert. Auf diese Weise wird Nginx so konfiguriert, dass nur Anfragen mit einem gültigen Client-Zertifikat von Cloudflare akzeptiert werden, sodass alle Anfragen nicht über CloudFlare gehen.

Schritt 3 - Einrichten von authentifizierten Ursprungsaufnahmen
Das Origin-CA-Zertifikat hilft Cloudflare dabei, zu überprüfen, ob es mit dem richtigen Origin-Server kommuniziert. Wie kann Ihr Origin Nginx-Server jedoch überprüfen, ob er tatsächlich mit Cloudflare kommuniziert? Geben Sie die TLS-Client-Authentifizierung ein.

Bei einer vom Client verifizierten TLS-Aushandlung stellen beide Parteien ein zu validierendes Zertifikat bereit. Der Ursprungsserver ist so konfiguriert, dass er nur Anfragen mit einem gültigen Clientzertifikat von Cloudflare akzeptiert. Anfragen, die nicht über Cloudflare gehen, werden storniert, da sie nicht über das Cloudflare-Zertifikat verfügen. Dies bedeutet, dass Angreifer die Sicherheitsmaßnahmen von Cloudflare nicht umgehen und sich direkt mit Ihrem Nginx-Server verbinden können.

Cloudflare bietet von einer CA signierte Zertifikate mit dem folgenden Zertifikat an:

-----ZERTIFIKAT BEGINNEN-----
MIIGBjCCA/CgAwIBAgIIV5G6lVbCLmEwCwYJKoZIhvcNAQENMIGQMQswCQYDVQQG
EwJVUzEZMBcGA1UEChMQQ2xvdWRGbGFyZSwgSW5jLjEUMBIGA1UECxMLT3JpZ2lu
IFB1bGwxFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xEzARBgNVBAgTCkNhbGlmb3Ju
aWExIzAhBgNVBAMTGm9yaWdpbi1wdWxsLmNsb3VkZmxhcmUubmV0MB4XDTE1MDEx
MzAyNDc1M1oXDTIwMDExMjAyNTI1M1owgZAxCzAJBgNVBAYTAlVTMRkwFwYDVQQK
ExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmlnaW4gUHVsbDEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZvcm5pYTEjMCEGA1UEAxMa
b3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDdsts6I2H5dGyn4adACQRXlfo0KmwsN7B5rxD8C5qgy6spyONr
WV0ecvdeGQfWa8Gy/yuTuOnsXfy7oyZ1dm93c3Mea7YkM7KNMc5Y6m520E9tHooc
f1qxeDpGSsnWc7HWibFgD7qZQx+T+yfNqt63vPI0HYBOYao6hWd3JQhu5caAcIS2
ms5tzSSZVH83ZPe6Lkb5xRgLl3eXEFcfI2DjnlOtLFqpjHuEB3Tr6agfdWyaGEEi
lRY1IB3k6TfLTaSiX2/SyJ96bp92wvTSjR7USjDV9ypf7AD6u6vwJZ3bwNisNw5L
ptph0FBnc1R6nDoHmvQRoyytoe0rl/d801i9Nru/fXa+l5K2nf1koR3IX440Z2i9
+Z4iVA69NmCbT4MVjm7K3zlOtwfI7i1KYVv+ATo4ycgBuZfY9f/2lBhIv7BHuZal
b9D+/EK8aMUfjDF4icEGm+RQfExv2nOpkR4BfQppF/dLmkYfjgtO1403X0ihkT6T
PYQdmYS6Jf53/KpqC3aA+R7zg2birtvprinlR14MNvwOsDOzsK4p8WYsgZOR4Qr2
gAx+z2aVOs/87+TVOR0r14irQsxbg7uP2X4t+EXx13glHxwG+CnzUVycDLMVGvuG
aUgF9hukZxlOZnrl6VOf1fg0Caf3uvV8smOkVw6DMsGhBZSJVwao0UQNqQIDAQAB
o2YwZDAOBgNVHQ8BAf8EBAMCAAYwEgYDVR0TAQH/BAgwBgEB/wIBAjAdBgNVHQ4E
FgQUQ1lLK2mLgOERM2pXzVc42p59xeswHwYDVR0jBBgwFoAUQ1lLK2mLgOERM2pX
zVc42p59xeswCwYJKoZIhvcNAQENA4ICAQDKDQM1qPRVP/4Gltz0D6OU6xezFBKr
LWtDoA1qW2F7pkiYawCP9MrDPDJsHy7dx+xw3bBZxOsK5PA/T7p1dqpEl6i8F692
g//EuYOifLYw3ySPe3LRNhvPl/1f6Sn862VhPvLa8aQAAwR9e/CZvlY3fj+6G5ik
3it7fikmKUsVnugNOkjmwI3hZqXfJNc7AtHDFw0mEOV0dSeAPTo95N9cxBbm9PKv
qAEmTEXp2trQ/RjJ/AomJyfA1BQjsD0j++DI3a9/BbDwWmr1lJciKxiNKaa0BRLB
dKMrYQD+PkPNCgEuojT+paLKRrMyFUzHSG1doYm46NE9/WARTh3sFUp1B7HZSBqA
kHleoB/vQ/mDuW9C3/8Jk2uRUdZxR+LoNZItuOjU8oTy6zpN1+GgSj7bHjiy9rfA
F+ehdrz+IOh80WIiqs763PGoaYUyzxLvVowLWNoxWVoc9G+PqFKqD988XlipHVB6
Bz+1CD4D/bWrs3cC9+kk/jFmrrAymZlkFX8tDb5aXASSLJjUjcptci9SKqtI2h0J
wUGkD7+bQAr+7vr8/R+CBmNMe7csE8NeEX6lVMF7Dh0a1YKQa6hUN18bBuYgTMuT
QzMmZpRpIBB321ZBlcnlxiTJvWxvbCPHKHj20VwwAz7LONF59s84ZsOqfoBv8gKM
s0s5dsq5zpLeaw==
-----ENDE ZERTIFIKAT-----
Sie können das Zertifikat auch direkt von Cloudflare hier herunterladen.

Kopieren Sie dieses Zertifikat.

Erstellen Sie als Nächstes den Dateinamen für das /etc/ssl/certs/cloudflare.crtCloudflare-Zertifikat:

sudo nano /etc/ssl/certs/cloudflare.crt

Kopieren
Zertifikat

füge es in die Datei ein. Speichern Sie dann die Datei und verlassen Sie den Editor.

Aktualisieren Sie nun Ihre Nginx-Konfiguration, um TLS Authenticated Resource Pulls zu verwenden. Öffnen Sie die Konfigurationsdatei für Ihre Domain:

sudo nano /etc/nginx/sites-available/example.com

Kopieren
Fügen Sie die Anweisungen ssl_client_certificate und ssl_verify_client wie im folgenden Beispiel gezeigt hinzu:

example.com'>/etc/nginx/sites-available/example.com
. . .

Server {

# SSL-Konfiguration

Hören Sie 443 SSL http2;
anhören [::]:443 ssl http2;
ssl an;
SSL-Zertifikat /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/private/key.pem;
ssl_client_certificate /etc/ssl/certs/cloudflare.crt;
ssl_verify_client an;

. . .

Kopieren
Speichern Sie die Datei und beenden Sie den Editor.

Testen Sie dann, um sicherzustellen, dass Ihre Nginx-Konfiguration keine Syntaxfehler enthält.

sudo nginx -t

Kopieren
Wenn keine Probleme gefunden werden, starten Sie Nginx neu, um Ihre Änderungen zu aktivieren:

sudo systemctl Neustart nginx

Kopieren
Um authentifizierte Pulls zu aktivieren, öffnen Sie schließlich den Abschnitt Crypto im Cloudflare-Dashboard und ändern Sie die Option Authenticated Origin Pulls.

Besuchen Sie nun Ihre Website unter, um zu überprüfen, ob sie richtig eingerichtet wurde. Ihre Homepage wird wie bisher angezeigt.https://example.com

Um zu überprüfen, ob Ihr Server nur von Cloudflares CA signierte Anfragen akzeptiert, ändern Sie die Option Authenticated Origin Pulls auf Deaktivierung und laden Sie dann Ihre Website neu. Sie sollten folgende Fehlermeldung erhalten:

Wenn eine Anfrage nicht von der Zertifizierungsstelle von Cloudflare signiert wird, gibt Ihr Ursprungsserver einen Fehler aus.

Nachdem Sie nun wissen, dass es ordnungsgemäß funktioniert, gehen Sie zurück zum Abschnitt Crypto im Cloudflare-Dashboard und ändern Sie die Option Authenticated Origin Pulls erneut, um sie zu aktivieren.

Ergebnis
In diesem Tutorial sichern Sie Ihre Nginx-basierte Website, indem Sie den Datenverkehr zwischen Cloudflare und dem Nginx-Server mithilfe eines Origin-CA-Zertifikats von Cloudflare verschlüsseln. Anschließend richten Sie Authenticated Origin Pulls auf dem Nginx-Server ein, um sicherzustellen, dass er nur Anfragen von Cloudflare-Servern akzeptiert und verhindert, dass sich andere direkt mit dem Nginx-Server verbinden.


Hosting Billing Software by WISECP
Top