GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment activer HTTPS pour Varnish Cache à l'aide de Hitch sur CentOS-RHEL 8

Cache de vernis manque de support natif pour SSL/TLS et autres protocoles associés au port 443 . Si vous utilisez Varnish Cache pour améliorer les performances de votre application Web, vous devez installer et configurer un autre logiciel appelé SSL/TLS proxy de terminaison, pour travailler avec Varnish Cache pour activer HTTPS .

L'attelage est un proxy SSL/TLS open source gratuit, basé sur libev et évolutif, conçu pour Varnish Cache , qui fonctionne actuellement sur Linux, OpenBSD, FreeBSD et MacOSX. Il termine les connexions TLS/SSL en écoutant sur le port 443 (le port par défaut pour HTTPS connexions) et transmet le trafic non chiffré au Varnish Cache , cependant, il devrait également fonctionner avec d'autres backends.

Il prend en charge TLS1.2 et TLS1.3 et ancien TLS 1.0/1.1 , prend en charge ALPN (Négociation du protocole de la couche application ) et NPN (Prochaine négociation de protocole ) pour HTTP/2 , un protocole PROXY pour signaler l'IP/le port du client à un backend, les connexions socket de domaine UNIX à l'origine, SNI (Indication du nom du serveur ), avec et sans certificats génériques. De plus, il fonctionne bien pour les grandes installations nécessitant jusqu'à 15 000 prises d'écoute et 500 000 certificats.

Dans la continuité de nos deux articles précédents sur l'installation de Varnish Cache pour Nginx et Apache Serveurs HTTP, ce guide montre comment activer HTTPS pour Cache de vernis en utilisant Hitch TLS Proxy sur CentOS/RHEL 8 .

Schéma logique de notre installation

Ce guide suppose que vous avez installé Varnish pour Nginx ou Apache serveur web, sinon, voir :

  • Comment installer Varnish Cache 6 pour le serveur Web Nginx sur CentOS/RHEL 8
  • Comment installer Varnish Cache 6 pour le serveur Web Apache sur CentOS/RHEL 8

Étape 1 :Installer Hitch sur CentOS/RHEL 8

1. L'attelage package est fourni dans le EPEL (Packages supplémentaires pour Enterprise Linux ) référentiel. Pour l'installer, activez d'abord EPEL sur votre système, puis installez le package par la suite. Si vous n'avez pas OpenSSL package installé, installez-le également.

# dnf install epel-release
# dnf install hitch openssl

Installer Hitch sur CentOS 8

2. Une fois l'installation du package terminée, vous devrez configurer Varnish Cache travailler Hitch . Vous devez également configurer Hitch pour utiliser votre SSL/TLS certificats et Vernis en tant que backend . Le fichier de configuration principal de Hitch se trouve dans /etc/hitch/hitch.conf , qui est expliqué ci-dessous.

Étape 2 :Configurer le cache de vernis pour l'attelage

3. Ensuite, activez Vernis pour écouter un port supplémentaire (8443 dans notre cas) en utilisant le PROXY prise en charge du protocole, pour les communications avec Hitch .

Alors ouvrez le Varnish systemd fichier de service pour l'édition.

# systemctl edit --full varnish

Recherchez la ligne ExecStart et ajoutez un -a supplémentaire indicateur avec la valeur 127.0.0.1:8443,proxy . Utilisation d'une valeur de 127.0.0.1:8443 signifie que Varnish n'acceptera que la connexion interne (des processus s'exécutant sur le même serveur, c'est-à-dire un accroc dans ce cas) mais pas les connexions externes.

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

Définir le port d'écoute de vernis pour l'attelage

Enregistrez le fichier, puis redémarrez le service Varnish pour appliquer les dernières modifications.

# systemctl restart varnish

Étape 3 : Obtenir des certificats SSL/TLS

4. Dans cette section, nous expliquerons comment créer le SSL/TLS ensemble de certificats à utiliser sous Hitch . Pour ce guide, nous expliquerons les différentes options d'utilisation d'un certificat auto-signé, d'un certificat commercial ou d'un certificat de Let's Encrypt .

Pour créer un certificat auto-signé (que vous ne devez utiliser que dans un environnement de test local), vous pouvez utiliser OpenSSL outil.

# 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

Créez ensuite un ensemble du certificat et de la clé comme suit.

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

Remarque  :Pour une utilisation en production, vous pouvez soit acheter un certificat auprès d'une autorité de certification commerciale (AC ) ou obtenez un certificat gratuit, automatisé et entièrement reconnu de Let's Encrypt . Créez ensuite un ensemble PEM.

Si vous avez acheté un certificat auprès d'une autorité de certification commerciale , vous devez fusionner la clé privée, le certificat et le bundle CA comme indiqué.

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

Pour Let's Encrypt , le certificat, la clé privée et la chaîne complète seront stockés sous /etc/letsencrypt/live/example.com/ , créez donc le groupe comme indiqué.

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

Étape 4 :Configuration et démarrage de l'attelage

5. Ensuite, configurez Varnish comme backend pour Hitch et spécifiez le SSL/TLS fichiers de certificat à utiliser pour HTTPS , dans l'attelage fichier de configuration principal, ouvrez-le pour le modifier.

# vi /etc/hitch/hitch.conf

L'interface définit les adresses IP et le port Hitch écoutera. La configuration par défaut est d'écouter sur tous les IPv4 et IPv6 interfaces attachées au serveur et s'exécute sur le port 443 et gérer le HTTPS entrant demandes, en les transmettant à Varnish .

Modifier le backend par défaut port proxy de 6086 à 8443 (le port utilisé pour transmettre les requêtes à Varnish ) dans l'attelage fichier de configuration, en utilisant le backend paramètre. Spécifiez également le fichier de certificat à l'aide du pem-file paramètre comme indiqué.

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

Configurer Hitch en tant que proxy SSL/TLS pour Varnish

Enregistrez le fichier et fermez-le.

6. Maintenant, démarrez l'attelage service et activez-le pour qu'il démarre automatiquement au démarrage du système. Notez que le --now switch lorsqu'il est utilisé avec enable, démarre également un service systemd, puis vérifie l'état pour voir s'il est opérationnel comme suit.

# systemctl enable --now hitch
# systemctl status hitch

Vérifier l'état de l'attelage

7. Avant de continuer à tester si votre site Web/application fonctionne maintenant sur HTTPS , vous devez autoriser le HTTPS service port 443 dans le pare-feu pour permettre aux requêtes destinées à ce port sur le serveur de passer à travers le pare-feu.

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

Étape 5 :Test de la terminaison SSL/TLS avec la configuration de Varnish Cache-Hitch

8. Il est maintenant temps de tester le Varnish Cache-Hitch mettre en place. Ouvrez un navigateur Web et utilisez l'adresse IP de votre domaine ou de votre serveur pour naviguer sur HTTPS .

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

Une fois la page d'index de votre application Web chargée, vérifiez le HTTP en-têtes pour confirmer que le contenu est diffusé via Varnish Cache .

Pour ce faire, faites un clic droit sur la page Web chargée, sélectionnez Inspecter dans la liste des options pour ouvrir les outils de développement. Cliquez ensuite sur le Réseau onglet, et Recharger la page, puis sélectionnez une demande pour afficher les en-têtes HTTP, comme indiqué dans la capture d'écran suivante.

Vérifiez la configuration HTTPS sur le cache de vernis

Étape 6 :Redirection HTTP vers HTTPS dans Varnish Cache

9. Pour exécuter votre site Web sur HTTPS seulement, vous devez rediriger tous les HTTP trafic vers HTTPS . Vous pouvez le faire en ajoutant la configuration suivante dans votre fichier de configuration Hitch.

# vi /etc/hitch/hitch.conf 

Tout d'abord, ajoutez la ligne import std ; juste en dessous de vlc 4.0 ; , puis recherchez le vlc_recv subroutine, qui est le premier sous-programme VCL exécuté immédiatement après Varnish Cache a analysé la demande du client dans sa structure de données de base. C'est là que nous pouvons modifier les en-têtes de requête et exécuter un synthé pour rediriger les requêtes des clients.

Modifiez-le pour qu'il ressemble à ceci.

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

Notez que le PROXY le protocole active Varnish pour voir Hitch's port d'écoute 443 depuis server.ip variable. Donc la ligne std.port(server.ip) renvoie le numéro de port sur lequel la connexion client a été reçue.

Si le port n'est pas 443 pour HTTPS (comme vérifié par (std.port(server.ip) !=443) ), la sous-routine définira l'en-tête HTTP Location de la requête (set req.http.location ) à une requête sécurisée ("https:// ” + req.http.host + URL requise ) demandant simplement au navigateur Web de charger un HTTPS version de la page Web (c'est-à-dire la redirection d'URL).

L'emplacement l'en-tête sera envoyé au vcl_synth sous-programme (qui est appelé en utilisant return(synth(301)) ) avec un code d'état HTTP de 301 (Déplacé définitivement ).

10. Ensuite, ajoutez la sous-routine vcl_synth suivante (l'un de ses nombreux cas d'utilisation est la redirection des utilisateurs), pour traiter le synthé ci-dessus.

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

Il vérifie si le statut de la réponse est 301 , l'en-tête HTTP Location dans la réponse est défini sur l'en-tête HTTP Location dans la requête qui est en fait une redirection vers HTTPS et exécute une action de livraison.

L'action de livraison crée une réponse avec la réponse du backend, stocke la réponse dans le cache et l'envoie au client.

Configurer Hitch pour rediriger HTTP vers HTTPS

Enregistrez le fichier et fermez-le.

11. Encore une fois, appliquez les nouvelles modifications dans la configuration de Varnish en redémarrant le service. Utilisez ensuite l'outil de ligne de commande curl pour confirmer la redirection depuis HTTP vers HTTPS .

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

Vérifiez la redirection HTTP vers HTTPS

Depuis le navigateur, la réponse est également la même que celle illustrée dans la capture d'écran suivante.

Vérifier la redirection HTTP vers HTTPS dans le navigateur

Nous espérons que tout a bien fonctionné jusqu'à présent. Si ce n'est pas le cas, déposez un commentaire ou des questions via le formulaire de commentaires ci-dessous. Pour toutes les options de configuration avancées, accédez à la documentation Varnish Cache et à la documentation Hitch.

Partager c'est aimer…
Partager sur FacebookPartager sur TwitterPartager sur LinkedinPartager sur Reddit
Cent OS
  1. Comment installer le cache de vernis sur CentOS

  2. Comment installer Varnish Cache 4 sur CentOS 7

  3. Comment activer plusieurs sites HTTPS pour une adresse IP sur Debian Etch à l'aide d'extensions TLS

  4. CentOS / RHEL :Comment activer SSL pour Apache

  5. Comment activer le vidage de mémoire pour les applications sur CentOS/RHEL

Comment installer Varnish Cache pour Nginx sur CentOS 8/Almalinux 8

Comment installer Varnish Cache pour Apache sur CentOS/RHEL 8

Comment activer HTTPS pour Varnish Cache à l'aide de Hitch sur CentOS-RHEL 8

Comment installer Varnish Cache 6 pour Nginx sur CentOS/RHEL 8

Comment accélérer Nginx avec Varnish Cache sur CentOS 7

Comment accélérer Apache avec Varnish Cache sur CentOS 7