Aufstellen
Die IP -Adressen haben sich also seit dem letzten Mal geändert, da ich dieses Setup wieder mache. Hier sind die neuen IPs und Hostnamen.
VM/Hostname | Öffentliche IP | Private IP | Rolle/Funktion |
ReverseProxy | 68.183.214.151 | 10.135.127.136 | TLS -Terminierungspunkt und Reverse -Proxy -Server |
Web1 | N / A | 10.135.126.102 | Hosting WW1.Ranvirslog.com Website über Port 80 HTTP |
Web2 | N / A | 10.135.126.187 | Hosting WW2.Ranvirslog.com Website über Port 80 HTTP |
Die DNS -Datensätze werden als solche eingerichtet. Dies ist zufällig die IP -Adresse unseres Nginx Reverse Proxy:
Ein Rekord | Wert |
WW1.Ranvirslog.com | 68.183.214.151 |
WW2.Ranvirslog.com | 68.183.214.151 |
Damit unsere umgekehrten DNS über unverschlüsselte HTTP funktionieren, haben wir zwei Dateien in /etc /conf erstellt.D/ Namen WW1.conf und ww2.Bekennt jeweils mit der folgenden Konfiguration:
/etc/conf.d/ww1.Conf
Server
Hören Sie 80;
Hören Sie [::]: 80;
Server_Name WW1.Ranvirslog.com;
Standort /
proxy_pass http: // 10.135.126.102/;
Proxy_Bufferen;
proxy_set_header x-real-ip $ remote_addr;
/etc/conf.d/ww2.Conf
Server
Hören Sie 80;
Hören Sie [::]: 80;
Server_Name WW2.Ranvirslog.com;
Standort /
proxy_pass http: // 10.135.126.187/;
Proxy_Bufferen;
proxy_set_header x-real-ip $ remote_addr;
Das Betriebssystem, das wir verwenden, ist Ubuntu 18.04 LTS und wir haben ENTFERNT Die Datei/etc/nginx/sites-fähig/Standard, so.
Zielsetzung
Mit den umgekehrten DNS (und den Backend -Websites), die bereits in Betrieb genommen werden.Ranvirslog.com und ww2.Ranvirslog.com) auf unserem Nginx Reverse Proxy.
Der Verkehr zwischen einem Kunden und dem Reverse -Proxy wird verschlüsselt, aber der Verkehr zwischen dem Reverse Proxy und den Backend -Servern ist nicht verschlüsselt. Dies ist jedoch immer noch eine unendlich sicherere Option als überhaupt keine HTTPs zu haben. Für Fälle, in denen sich der Reverse -Proxy und die verschiedenen Webserver auf demselben Host befinden, sagen Sie, wenn Sie Docker -Container verwenden, um alle auf demselben VPS zu hosten, ist sogar dieser unverschlüsselte Verkehr auf einem einzelnen Host enthalten.
Installieren von CertBot
Certbot ist ein Client -Programm, das auf unserem Reverse -Proxy -Server ausgeführt wird und ein TLS -Zertifikat mit LetSencrypt aushandelt. Es wird LetSencrypt beweisen, dass der Server tatsächlich die Kontrolle über die FQDNs hat, über die er behauptet, die Kontrolle über die Kontrolle zu haben. Wir machen uns keine Sorgen darüber, wie Certbot es macht.
Traditionell können Sie Certbot als eigenständige Software verwenden, die nur die Zertifikate (die im Grunde nur lange kryptografische Schlüssel) erhalten und auf dem Server speichern. Zum Glück gibt es für die meisten Betriebssysteme benutzerdefinierte Plugins für Nginx, Apache und andere Software. Wir werden den Certbot mit Nginx -Plugin installieren. Dadurch konfiguriert NGINX automatisch so.
Wenn Sie Debian -basierte Systeme verwenden, wie in meinem Fall ich Ubuntu 18 benutze.04 LTS, dann ist die Installation eine Brise.
$ sudo APT Update
$ sudo apt installieren Software-Properties-Common
$ sudo add-apt-Repository-Universum
$ sudo add-apt-Repository PPA: certbot/certbot
$ sudo APT Update
$ sudo APT Installieren Sie Python-CertBot-Nginx
Andere Betriebssysteme, Ihr Redhat, Gentoo und Fedora können die hier aufgeführten offiziellen Anweisungen befolgen.
Sobald Sie Certbot installiert haben mit Nginx -Plugin Für Ihre Kombination aus Betriebssystem können wir auf das Geschäft kommen.
TLS -Zertifikate erhalten
Führen Sie den folgenden Befehl aus, um das TLS -Zertifikat zum ersten Mal zu erhalten:
$ sudo certbot -nginx
Dies wird eine Reihe interaktiver Fragen durchlaufen, wie unten gezeigt:
Speichern des Debug -Protokolls an /var/log/letSencrypt/letSencrypt.Protokoll
Ausgewählte Plugins: Authenticator Nginx, Installationsprogramm Nginx
Geben Sie eine E -Mail -Adresse ein (verwendet für dringende Erneuerungs- und Sicherheitsbekanntmachungen) (Geben Sie "C" ab, um zu stornieren): [email protected]
Bitte lesen Sie die Nutzungsbedingungen unter https: // letSecrypt.org/dokumente/le-sav1.2-November-15.-2017.PDF. Sie müssen zustimmen, um sich beim ACME-Server unter https: // acme-v02 zu registrieren.API.letSencrypt.org/Verzeichnis
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A) GREE/(C) ANCel: a
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wären Sie bereit, Ihre E-Mail-Adresse mit der Electronic Frontier Foundation, einem Gründungspartner des LET's Encrypt-Projekts und der gemeinnützigen Organisation, die Certbot zu entwickeln? Wir möchten Ihnen E -Mails über unsere Arbeit senden, um Web, EFF -Nachrichten, Kampagnen und Möglichkeiten zur Unterstützung der digitalen Freiheit zu vergrößen.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y) es/(n) o: y
Für welche Namen möchten Sie HTTPS für aktivieren??
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: WW1.Ranvirslog.com
2: WW2.Ranvirslog.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wählen Sie die entsprechenden Zahlen aus, die durch Kommas und/oder Leerzeichen getrennt sind, oder lassen Sie Eingabe leer, um alle angegebenen Optionen auszuwählen (Geben Sie 'C' ab, um zu stornieren):
Bitte auswählen.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Keine Weiterleitung - Nehmen Sie keine weiteren Änderungen an der Webserver -Konfiguration vor.
2: Weiterleiten - Stellen Sie alle Anfragen um, um den HTTPS -Zugriff zu sichern. Wählen Sie dies für neue Websites oder wenn Sie sicher sind, dass Ihre Website auf HTTPS funktioniert. Sie können diese Änderung rückgängig machen, indem Sie die Konfiguration Ihres Webservers bearbeiten.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wählen Sie die entsprechende Nummer [1-2] und dann [ENTER] (Drücken Sie 'C', um zu stornieren): 2
Wenn alles gut lief, zeigt es Ihnen diese Nachricht, nur für Ihre Domainnamen.
Glückwunsch! Sie haben erfolgreich https: // ww1 aktiviert.Ranvirslog.com und https: // ww2.Ranvirslog.com Sie können die FQDNs besuchen und feststellen.
Schauen Sie sich die Konfigurationsdateien an
Wenn Sie die zuvor erstellten Konfigurationsdateien anzeigen, nämlich /etc /conf.d/ww1.conf und /etc /conf.d/ww2.Conf, Sie werden feststellen, dass alle Regeln „Hören 80“ verschwunden sind und einige neue Zeilen hinzugefügt wurden, dass die Kommunikation verschlüsselt werden muss, und der Ort der Zertifikate und Schlüssel zur Durchführung der genannten Verschlüsselung.
Ich empfehle dringend, die Konfigurationsdateien durchzusehen, da Sie dies auch beibringen können, wie Sie Zertifikate ordnungsgemäß installieren und Konfigurationsdateien schreiben.
Erneuerung der Zertifizierung
Typische LetSencrypt -Zertifikate sind 90 Tage gültig, und bevor sie ablaufen, müssen Sie sie erneuern. Sie können Certbot verwenden, um die Erneuerung zuerst zu trocken, indem Sie den Befehl ausführen:
$ sudo certbot renew-trockenrund
Wenn der Vorgang erfolgreich ist, sehen Sie die folgende Nachricht:
Herzlichen Glückwunsch, alle Erneuerungen waren erfolgreich. Die folgenden Zertifikate wurden erneuert:
/etc/letSencrypt/live/ww1.Ranvirslog.com/fullchain.PEM (Erfolg)
** Dry Run: Simulation 'certbot renew' in der Nähe von Cert -Ablauf
** (Die obigen Testzertifikate wurden nicht gespeichert.)
Jetzt können Sie einen Cron -Job hinzufügen, der jede Woche oder so versuchen wird. Certbot wird die Zertifikate nicht erneuern, es sei denn, sie sind wirklich dafür fällig, sodass Sie sich keine Sorgen machen müssen. Der Befehl zur tatsächlichen Erneuerung lautet:
$ certbot renew
Fügen Sie es in den Cron -Job von Root hinzu, indem Sie:
$ sudo crontab -e
Wählen Sie in der folgenden Eingabeaufforderung Ihren bevorzugten Editor aus (wählen Sie Nano, wenn Sie sich nicht sicher sind) und fügen Sie die folgenden Zeilen am Ende der jetzt geöffneten Datei hinzu:
…
# Sie können beispielsweise eine Sicherung aller Ihrer Benutzerkonten ausführen
# bei 5 a.m jede Woche mit:
# 0 5 * * 1 tar -Zcf/var/backups/home.tgz /home /
#
# Weitere Informationen finden Sie in den manuellen Seiten von Crontab (5) und Cron (8)
#
# M H Dom Mon Dow -Befehl
* 2 * * 2 certbot erneuern
Dadurch wird der Befehl certbot ren sich zu jeder zufälligen Minute um 2 Uhr morgens, am zweiten Tag jeder Woche.
Wenn Sie in TLS -Zertifikaten neu sind, kann das Experimentieren mit Dingen wie HSTs riskant sein. Da diese Änderungen irreversibel sind. Wenn Sie jedoch das Kaninchenloch der Sicherheit durchgehen möchten, kann ich den Blog von Troy Hunt wärmstens empfehlen, der eine der wichtigsten Inspirationen für diese Beschreibung ist.