Comment activer les HTTPS pour le cache de vernis en utilisant l'attelage sur centos-rhel 8

Comment activer les HTTPS pour le cache de vernis en utilisant l'attelage sur centos-rhel 8

Cache de vernis manque de support natif pour SSL / TLS et d'autres protocoles associés au port 443. Si vous utilisez Cache de vernis Pour augmenter les performances de votre application Web, vous devez installer et configurer un autre logiciel appelé SSL / TLS proxy de terminaison, pour travailler aux côtés Cache de vernis autoriser Https.

Le Attelage est un proxy SSL / TLS open source gratuit, basé sur Libev et évolutif conçu pour Cache de vernis, 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 crypté pour Cache de vernis, Cependant, cela devrait aussi fonctionner avec d'autres backends.

Il prend en charge TLS1.2 et TLS1.3 et héritage TLS 1.0/1.1, les soutiens Alpn (Négociation du protocole de couche application) et NPN (Négociation du protocole suivant) pour Http / 2, Un protocole proxy pour signaler le client IP / port du client vers un backend, des connexions de prise 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 qui nécessitent jusqu'à 15 000 sockets à écouter et 500 000 certificats.

Comme continuation de nos deux articles précédents sur l'installation Cache de vernis pour Nginx et Apache Serveurs HTTP, ce guide montre pour activer Https pour Cache de vernis en utilisant Proxy Hitch TLS sur Centos / Rhel 8.

Diagramme logique de notre configuration

Ce guide suppose que vous avez installé Vernis 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: Installez l'attelage sur Centos / Rhel 8

1. Le Attelage le colis est fourni dans le Epel (Packages supplémentaires pour l'entreprise 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 Installer EPEL-Release # DNF Installer Hitch OpenSSL 
Installez l'attelage sur Centos 8

2. Une fois l'installation du package terminé, vous devrez configurer Cache de vernis travailler Attelage. Vous devez également configurer Attelage Pour utiliser votre SSL / TLS certificats et Vernis comme un backend. Le fichier de configuration principal de Hitch est situé à / etc / Hitch / Hitch.confli, qui est expliqué ci-dessous.

Étape 2: Configuration du cache de vernis pour Hitch

3. Ensuite, activez Vernis Pour écouter un port supplémentaire (8443 dans notre cas) en utilisant le PROCURATION Support de protocole, pour les communications avec Attelage.

Alors ouvrez le vernis systemd Fichier de service pour l'édition.

# SystemCTL Edit - Varnisf 

Chercher la ligne Exercice et ajouter un supplément -un Flag avec la valeur 127.0.0.1: 8443, proxy. En utilisant une valeur de 127.0.0.1: 8443 signifie que Varnish n'acceptera que la connexion interne (à partir des processus exécutés sur le même serveur I.E Hitch dans ce cas) mais pas des connexions externes.

Execstart = / usr / sbin / varnish -a: 80 -a 127.0.0.1: 8443, proxy -f / etc / vernis / par défaut.VCL -S Malloc, 256m 
Définir le port d'écoute de vernis pour Hitch

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

# SystemCTl Restart Vernis 

Étape 3: Obtention des certificats SSL / TLS

4. Dans cette section, nous expliquerons comment créer le SSL / TLS pack de certificat à utiliser sous Attelage. Pour ce guide, nous expliquerons les différentes options pour utiliser un certificat auto-signé, un certificat commercial ou un de Escryptons.

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

# mkdir / etc / ssl / tecmint.LAN # CD / etc / ssl / tecmint.LAN / # OpenSSL REQ -X509 -Nodes -Days 365 -Newkey RSA: 2048 -Keyout Tecmint.lan.clé -out tecmint.lan.CRT 

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

# Cat Tecmint.CRT Tecmint.Clé> Tecmint.pem 

Note: Pour une utilisation en production, vous pouvez acheter un certificat à partir d'une publicité Autorité de certification (Californie) ou prenez un certificat gratuit, automatisé et entièrement reconnu à partir de Escryptons. Puis créez un pack pem.

Si vous avez acheté un certificat à une publicité Californie, Vous devez fusionner la clé privée, le certificat et le bundle CA comme indiqué.

# Exemple de chat.com.exemple clé.com.Exemple CRT.com-ca-bundle.crt> / etc / ssl / exemple.com.pem 

Pour Escryptons, Le certificat, la clé privée et la chaîne complète seront stockées sous / etc / lesencrypt / live / exemple.com /, Alors créez le paquet comme indiqué.

# chat / etc / letsencrypt / live / exemple.com / fullchain.pem / etc / lesencrypt / live / exemple.com / privkey.pem> / etc / lesencrypt / live / exemple.com / exemple.com_bundle.pem 

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

5. Ensuite, configurez Vernis comme backend pour Attelage et spécifiez le SSL / TLS Fichiers de certificat à utiliser pour Https, dans le Attelage Fichier de configuration principale, ouvrez-le pour l'édition.

# vi / etc / Hitch / Hitch.confli 

Le l'extrémité avant La section définit les adresses IP et port Hitch écoutera. La configuration par défaut consiste à écouter sur tous Ipv4 et Ipv6 Interfaces connectées sur le serveur et s'exécute sur le port 443 et gérer entrant Https demande, les transmettre à Vernis.

Modifier la valeur par défaut backend port proxy de 6086 pour 8443 (Le port utilisé pour transmettre les demandes à Vernis) dans le 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 / privé "pem-file =" / etc / ssl / tecmint.LAN / Tecmint.pem " 
Configurez l'attelage comme proxy SSL / TLS pour le vernis

Enregistrez le fichier et fermez-le.

6. Maintenant, commencez le attelage Service et activer pour démarrer automatiquement au démarrage du système. Notez que le --maintenant Communiquez lorsqu'il est utilisé avec Activer, démarre également un service SystemD, puis vérifiez l'état pour voir s'il est opérationnel comme suit.

# SystemCTL Active --now Hitch # Statut SystemCTL Hitch 
Vérifiez le statut d'attelage

7. Avant de passer à tester si votre site Web / application est maintenant en cours d'exécution Https, vous devez autoriser le Https Port de service 443 dans le pare-feu pour permettre aux demandes destinées à ce que ce port sur le serveur passe par le pare-feu.

# Firewall-Cmd --zone = public --permanent --add-Service = https # Firewall-CMD - Reload 

Étape 5: Tester la terminaison SSL / TLS avec une configuration de cache de vernis

8. Il est maintenant temps de tester le Vernis cache-cache installation. Ouvrez un navigateur Web et utilisez l'IP de votre domaine ou de votre serveur pour naviguer sur Https.

https: // www.exemple.com ou https: // server_ip / 

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

Pour ce faire, cliquez avec le bouton droit sur la page Web chargée, sélectionnez Inspecter à partir de la liste des options pour ouvrir les outils du développeur. Puis cliquez sur le Réseau Onglet, et Recharger La page, puis sélectionnez une demande pour afficher les en-têtes HTTP, comme en évidence dans la capture d'écran suivante.

Vérifiez la configuration HTTPS sur le cache de vernis

Étape 6: Redirection HTTP vers HTTPS dans le cache de vernis

9. Pour exécuter votre site Web sur Https seulement, vous devez rediriger tout Http trafic de Https. Vous pouvez le faire en ajoutant la configuration suivante dans votre fichier de configuration d'attelage.

# vi / etc / Hitch / Hitch.confli 

Tout d'abord, ajoutez la ligne importer std; juste en dessous VLC 4.0;, puis cherchez le vlc_recv sous-programme, qui est le premier sous-programme VCL exécuté immédiatement après Cache de vernis 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 demande et exécuter un synthé pour rediriger les demandes du client.

Modifiez-le pour ressembler à ceci.

sub vcl_recv if (std.port (serveur.ip) != 443) Set req.http.location = "https: //" + req.http.hôte + req.URL; retour (synthé (301));  

Notez que le PROCURATION Protocole Active Vernis voir Hitch's port d'écoute 443 du serveur.IP variable. Alors la ligne MST.port (serveur.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 (MST.port (serveur.ip) != 443)), le sous-programme définira l'en-tête de l'emplacement de la demande HTTP (Définir REQ.http.emplacement) à une demande sécurisée («https: //" + req.http.héberger + req.URL) demandant simplement au navigateur Web de charger un Https Version de la page Web (i.E Redirection de l'URL).

Le Emplacement l'en-tête sera envoyé au vcl_synth sous-programme (qui est appelé en utilisant retour (synthé (301))) avec un code d'état HTTP de 301 (Déplacé de façon permanente).

dix. Ensuite, ajoutez ce qui suit sous-programme VCL_SYNTH (L'un de ses nombreux cas d'utilisation est de rediriger les utilisateurs), pour traiter le synthé ci-dessus.

sub vcl_synth if (resp.status == 301) set resp.http.Emplacement = req.http.emplacement; définir resp.statut = 301; retour (livrer);  

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

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

Configurez l'attelage pour rediriger HTTP vers HTTPS

Enregistrez le fichier et fermez-le.

11. Encore une fois, appliquez les nouvelles modifications de la configuration de vernis en redémarrant le service. Utilisez ensuite l'outil de ligne de commande Curl pour confirmer la redirection Http pour Https.

# systemctl redémarrage vernis # curl -i http: // eaxmple.com / 
Vérifiez HTTP vers HTTPS Redirection

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

Vérifiez la redirection HTTP à HTTPS dans le navigateur

Nous espérons que tout a très bien fonctionné jusqu'à ce point. Sinon, déposez un commentaire ou des questions via le formulaire de rétroaction ci-dessous. Pour toutes les options de configuration avancées, accédez à la documentation du cache de vernis et à l'attelage de la documentation.