GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So aktivieren Sie HTTPS für Varnish Cache mit Hitch auf CentOS-RHEL 8

Lack-Cache keine native Unterstützung für SSL/TLS und andere mit Port 443 verbundene Protokolle . Wenn Sie Varnish Cache verwenden Um die Leistung Ihrer Webanwendung zu steigern, müssen Sie eine weitere Software namens SSL/TLS installieren und konfigurieren Terminierungs-Proxy, um neben Varnish Cache zu arbeiten um HTTPS zu aktivieren .

Die Anhängerkupplung ist ein kostenloser Open-Source-, Libev-basierter und skalierbarer SSL/TLS-Proxy, der für Varnish Cache entwickelt wurde , das derzeit unter Linux, OpenBSD, FreeBSD und MacOSX funktioniert. Es beendet TLS/SSL-Verbindungen, indem es auf Port 443 lauscht (der Standardport für HTTPS Verbindungen) und leitet den unverschlüsselten Datenverkehr an Varnish Cache weiter , sollte aber auch mit anderen Backends funktionieren.

Es unterstützt TLS1.2 und TLS1.3 und altes TLS 1.0/1.1 , unterstützt ALPN (Application-Layer Protocol Negotiation ) und NPN (Nächste Protokollverhandlung ) für HTTP/2 , ein PROXY-Protokoll zum Signalisieren von Client-IP/Port an ein Backend, UNIX-Domain-Socket-Verbindungen zum Ursprung, SNI (Servernamensanzeige ), mit und ohne Platzhalterzertifikate. Außerdem eignet es sich gut für große Installationen, die bis zu 15.000 erfordern Abhörsteckdosen und 500.000 Zertifikate.

Als Fortsetzung unserer beiden vorherigen Artikel über die Installation von Varnish Cache für Nginx und Apache HTTP-Server, diese Anleitung zeigt, wie Sie HTTPS aktivieren für Lack-Cache mit Hitch TLS Proxy auf CentOS/RHEL 8 .

Logisches Diagramm unseres Setups

Diese Anleitung geht davon aus, dass Sie Varnish installiert haben für Nginx oder Apache Webserver, ansonsten siehe:

  • So installieren Sie Varnish Cache 6 für Nginx-Webserver auf CentOS/RHEL 8
  • So installieren Sie Varnish Cache 6 für Apache Web Server auf CentOS/RHEL 8

Schritt 1:Installieren Sie Hitch auf CentOS/RHEL 8

1. Die Anhängerkupplung Paket wird im EPEL bereitgestellt (Zusatzpakete für Enterprise Linux ) Repository. Um es zu installieren, aktivieren Sie zuerst EPEL auf Ihrem System und installieren Sie anschließend das Paket. Wenn Sie OpenSSL nicht haben Paket installiert haben, installieren Sie es ebenfalls.

# dnf install epel-release
# dnf install hitch openssl

Installieren Sie Hitch unter CentOS 8

2. Wenn die Paketinstallation abgeschlossen ist, müssen Sie Varnish Cache konfigurieren Hitch zu arbeiten . Außerdem müssen Sie Hitch konfigurieren um Ihr SSL/TLS zu verwenden Zertifikate und Lack als Backend . Die Hauptkonfigurationsdatei von Hitch befindet sich unter /etc/hitch/hitch.conf , die unten erklärt wird.

Schritt 2:Varnish Cache für Hitch konfigurieren

3. Aktivieren Sie als Nächstes Lackieren um einen zusätzlichen Port abzuhören (8443 in unserem Fall) mit dem PROXY Protokollunterstützung für die Kommunikation mit Hitch .

Öffnen Sie also das systemd von Varnish service-Datei zum Bearbeiten.

# systemctl edit --full varnish

Suchen Sie nach der Zeile ExecStart und fügen Sie ein zusätzliches -a hinzu Flag mit dem Wert 127.0.0.1:8443,proxy . Verwenden Sie einen Wert von 127.0.0.1:8443 bedeutet, dass Varnish nur die interne Verbindung akzeptiert (von Prozessen, die auf demselben Server laufen, d. h. in diesem Fall Hitch), aber keine externen Verbindungen.

ExecStart=/usr/sbin/varnishd -a :80 -a 127.0.0.1:8443,proxy -f /etc/varnish/default.vcl -s malloc,256m 

Stellen Sie den Varnish Listen Port für Hitch

ein

Speichern Sie die Datei und starten Sie den Varnish-Dienst neu, um die neuesten Änderungen zu übernehmen.

# systemctl restart varnish

Schritt 3:SSL/TLS-Zertifikate erhalten

4. In diesem Abschnitt erklären wir, wie Sie SSL/TLS erstellen Zertifikatspaket, das unter Hitch verwendet werden soll . In diesem Leitfaden erläutern wir die verschiedenen Optionen zur Verwendung eines selbstsignierten Zertifikats, eines kommerziellen Zertifikats oder eines von Let’s Encrypt .

Um ein selbstsigniertes Zertifikat zu erstellen (das Sie nur in einer lokalen Testumgebung verwenden sollten), können Sie OpenSSL verwenden Werkzeug.

# mkdir /etc/ssl/tecmint.lan
# cd /etc/ssl/tecmint.lan/
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout  tecmint.lan.key -out tecmint.lan.crt

Erstellen Sie dann wie folgt ein Bündel aus Zertifikat und Schlüssel.

# cat tecmint.crt tecmint.key >tecmint.pem

Hinweis :Für den Produktionseinsatz können Sie entweder ein Zertifikat von einer kommerziellen Zertifizierungsstelle erwerben (CA ) oder holen Sie sich ein kostenloses, automatisiertes und vollständig anerkanntes Zertifikat von Let’s Encrypt . Erstellen Sie dann ein PEM-Paket.

Wenn Sie ein Zertifikat von einer kommerziellen CA gekauft haben , müssen Sie den privaten Schlüssel, das Zertifikat und das CA-Bundle wie gezeigt zusammenführen.

# cat example.com.key example.com.crt example.com-ca-bundle.crt > /etc/ssl/example.com.pem 

Für Let’s Encrypt , das Zertifikat, der private Schlüssel und die vollständige Kette werden unter /etc/letsencrypt/live/example.com/ gespeichert , erstellen Sie also das Bundle wie gezeigt.

# cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem >/etc/letsencrypt/live/example.com/example.com_bundle.pem

Schritt 4:Anhängevorrichtung konfigurieren und starten

5. Konfigurieren Sie als Nächstes Lack als Backend für Hitch und geben Sie SSL/TLS an Zertifikatsdateien zur Verwendung für HTTPS , in der Anhängerkupplung Hauptkonfigurationsdatei, öffnen Sie sie zum Bearbeiten.

# vi /etc/hitch/hitch.conf

Das Frontend Abschnitt definiert die IP-Adressen und den Port Hitch wird zuhören. Die Standardkonfiguration ist, auf allen IPv4 zu lauschen und IPv6 Interfaces, die an den Server angeschlossen sind und auf Port 443 ausgeführt werden und verarbeitet eingehendes HTTPS Anfragen und übergibt sie an Varnish .

Ändern Sie das standardmäßige Backend Proxy-Port von 6086 bis 8443 (der Port, der zum Weiterleiten von Anfragen an Varnish verwendet wird ) in der Anhängerkupplung Konfigurationsdatei über das Backend Parameter. Geben Sie außerdem die Zertifikatsdatei mithilfe der pem-Datei an Parameter wie gezeigt.

backend = "[127.0.0.1]:8443"
#pem-dir = "/etc/pki/tls/private"
pem-file = "/etc/ssl/tecmint.lan/tecmint.pem"

Konfigurieren Sie Hitch als SSL/TLS-Proxy für Varnish

Speichern Sie die Datei und schließen Sie sie.

6. Starten Sie nun die Anhängerkupplung Dienst und aktivieren Sie ihn so, dass er beim Systemstart automatisch gestartet wird. Beachten Sie, dass --now switch, wenn er mit enable verwendet wird, startet auch einen systemd-Dienst und überprüft dann den Status, um zu sehen, ob er betriebsbereit ist, wie folgt.

# systemctl enable --now hitch
# systemctl status hitch

Kupplungsstatus überprüfen

7. Bevor Sie fortfahren, testen Sie, ob Ihre Website/Anwendung jetzt auf HTTPS läuft , müssen Sie HTTPS zulassen Dienstport 443 in der Firewall, damit Anfragen, die für diesen Port auf dem Server bestimmt sind, die Firewall passieren können.

# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

Schritt 5:SSL/TLS-Terminierung mit Varnish Cache-Hitch Setup testen

8. Jetzt ist es an der Zeit, den Varnish Cache-Hitch zu testen aufstellen. Öffnen Sie einen Webbrowser und verwenden Sie die IP-Adresse Ihrer Domain oder Ihres Servers, um über HTTPS zu navigieren .

https://www.example.com
OR
https://SERVER_IP/

Nachdem die Indexseite Ihrer Webanwendung geladen wurde, überprüfen Sie das HTTP Kopfzeilen, um zu bestätigen, dass Inhalte über Varnish Cache bereitgestellt werden .

Klicken Sie dazu mit der rechten Maustaste auf die geladene Webseite und wählen Sie Inspizieren aus der Liste der Optionen, um die Entwicklertools zu öffnen. Klicken Sie dann auf das Netzwerk Tab und Neu laden der Seite, und wählen Sie dann eine Anfrage aus, um die HTTP-Header anzuzeigen, wie im folgenden Screenshot hervorgehoben.

Überprüfen Sie das HTTPS-Setup auf Varnish Cache

Schritt 6:Umleitung von HTTP zu HTTPS im Varnish-Cache

9. Zum Ausführen Ihrer Website auf HTTPS nur müssen Sie alle HTTP umleiten Datenverkehr zu HTTPS . Sie können dies tun, indem Sie die folgende Konfiguration zu Ihrer Hitch-Konfigurationsdatei hinzufügen.

# vi /etc/hitch/hitch.conf 

Fügen Sie zunächst die Zeile import std; hinzu knapp unter vlc 4.0; , suchen Sie dann nach vlc_recv Subroutine, die die erste VCL-Subroutine ist, die unmittelbar nach Varnish Cache ausgeführt wird hat die Client-Anforderung in ihre grundlegende Datenstruktur zerlegt. Hier können wir die Anforderungsheader ändern und einen Synthesizer ausführen, um Clientanforderungen umzuleiten.

Ändern Sie es so, dass es so aussieht.

sub vcl_recv {
    if (std.port(server.ip) != 443) {
        set req.http.location = "https://" + req.http.host + req.url;
        return(synth(301));
    }
}

Beachten Sie, dass der PROXY Protokoll aktiviert Varnish um Hitch's zu sehen Überwachungsport 443 aus der server.ip Variable. Also die Zeile std.port(server.ip) gibt die Portnummer zurück, auf der die Client-Verbindung empfangen wurde.

Wenn der Port nicht 443 ist für HTTPS (geprüft von (std.port(server.ip) !=443) ), setzt die Subroutine den HTTP-Location-Header der Anforderung (set req.http.location ) zu einer sicheren Anfrage („https:// ” + req.http.host + erforderliche URL ) einfach den Webbrowser auffordern, ein HTTPS zu laden Version der Webseite (d. h. URL-Umleitung).

Der Standort Header wird an vcl_synth gesendet Subroutine (die mit return(synth(301)) aufgerufen wird ) mit einem HTTP-Statuscode von 301 (Dauerhaft verschoben ).

10. Fügen Sie als Nächstes die folgende vcl_synth-Subroutine hinzu (Einer seiner vielen Anwendungsfälle ist das Umleiten von Benutzern), um den obigen Synthesizer zu verarbeiten.

sub vcl_synth {
        if (resp.status == 301) {
                set resp.http.location = req.http.location;
		  set resp.status = 301;
                return (deliver);
        }
}

Es prüft, ob der Antwortstatus 301 ist , wird der HTTP-Location-Header in der Antwort auf den HTTP-Location-Header in der Anfrage gesetzt, was tatsächlich eine Umleitung zu HTTPS ist und eine Übermittlungsaktion ausführt.

Die Lieferaktion erstellt eine Antwort mit der Antwort vom Back-End, speichert die Antwort im Cache und sendet sie an den Client.

Konfigurieren Sie Hitch so, dass HTTP auf HTTPS umgeleitet wird

Speichern Sie die Datei und schließen Sie sie.

11. Wenden Sie erneut die neuen Änderungen in der Varnish-Konfiguration an, indem Sie den Dienst neu starten. Verwenden Sie dann das Curl-Befehlszeilentool, um die Umleitung von HTTP zu bestätigen zu HTTPS .

# systemctl restart varnish
# curl -I http://eaxmple.com/

Aktivieren Sie die HTTP-zu-HTTPS-Umleitung

Die Antwort des Browsers ist ebenfalls dieselbe wie im folgenden Screenshot gezeigt.

Überprüfen Sie die HTTP-zu-HTTPS-Umleitung im Browser

Wir hoffen, dass bis jetzt alles gut funktioniert hat. Wenn nicht, hinterlassen Sie einen Kommentar oder eine Frage über das Feedback-Formular unten. Informationen zu erweiterten Konfigurationsoptionen finden Sie in der Varnish Cache-Dokumentation und der Hitch-Dokumentation.

Sharing is Caring…
Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenAuf Reddit teilen
Cent OS
  1. So installieren Sie Varnish Cache auf CentOS

  2. So aktivieren Sie das langsame Abfrageprotokoll für MySQL

  3. So installieren Sie Varnish Cache 4 unter CentOS 7

  4. So installieren Sie Varnish Cache unter CentOS 8

  5. So aktivieren Sie mehrere HTTPS-Sites für eine IP auf Debian Etch mithilfe von TLS-Erweiterungen

So installieren Sie Varnish Cache für Nginx unter CentOS 8/Almalinux 8

So installieren Sie Varnish Cache für Apache unter CentOS/RHEL 8

So aktivieren Sie HTTPS für Varnish Cache mit Hitch auf CentOS-RHEL 8

So installieren Sie Varnish Cache 6 für Nginx unter CentOS/RHEL 8

So beschleunigen Sie Nginx mit Varnish Cache unter CentOS 7

So beschleunigen Sie Apache mit Varnish Cache unter CentOS 7