Chiffrement de la ligne https + nodebalancer
Franchement, le cryptage Let’s est probablement le meilleur choix après le brouillage, vous permettant d’obtenir des certificats SSL \/ TLS gratuits à l’aide d’outils et d’api open source pour créer et renouveler automatiquement et en permanence ces certificats. Il y a déjà beaucoup de lignes directrices sur la façon de commencer à utiliser le cryptage de let, y compris la documentation de spécification, et Brad parle dans un autre article de son excitation pour le cryptage de let. Aujourd’hui, cependant, nous allons examiner quelque chose de très spécifique nécessaire pour un projet parallèle: l’utilisation d’un certificat de chiffrement Let’s avec une ligne nodebalancer.
Date de mise à jour: 22 \/ 02 \/ 2017 Japanese originally beta version of letencrypt auto, now provides a minor update to refer to the Current standard certbot tool. Toutes les opérations doivent rester valides, mais l’utilisation d’une opération de renouvellement (plutôt que d’utiliser uniquement le certificat) peut réduire légèrement la commande de renouvellement du certificat. équilibrage des noeuds https + lorsque vous avez un site ou un service réussi, vous devrez probablement diviser le trafic entre plusieurs serveurs pour gérer votre charge de travail. Il y a beaucoup à dire sur l’utilisation de plusieurs serveurs Web pour se protéger contre les pannes de serveur. C’est pourquoi l’équilibreur de noeuds est souvent utilisé pour accepter le trafic Internet entrant et le transmettre rapidement au serveur d’arrière – plan afin de traiter les nouvelles demandes et de grouper entre le client et le serveur.
Lorsque vous utilisez le Service d’équilibrage de noeuds devant un ou plusieurs serveurs Web, il existe deux façons courantes de traiter les demandes HTTPS. Vous pouvez soit transmettre une requête https au serveur Web derrière le Service d’équilibrage de noeuds, soit mettre fin à la requête pour le Service d’équilibrage de noeuds et transmettre la requête comme http au serveur d’arrière – plan. Les deux approches présentent des avantages et des inconvénients. Par exemple, à très haute capacité
ENCRYPT j’ai passé les paramètres certonly et – – webroot pour m’assurer qu’un certificat est généré qui peut être utilisé ailleurs et nous dire que ENCRYPT utilise la méthode webroot pour vérifier mon contrôle sur le domaine. Lorsque vous utilisez une combinaison de ces paramètres, let sencrypt stocke un fichier nommé au hasard dans le Répertoire. Le célèbre défi \/ Acme, créé sous la racine Web que vous spécifiez en utilisant le drapeau – W, exige que le Service de cryptage let vérifie qu’il est accessible à partir du domaine. C’est pourquoi j’a i besoin d’un serveur HTTP de travail pour le domaine. Ian Jones. Com, au moins au début.
Nous devons également utiliser la méthode certonly au lieu d’Apache ou d’autres méthodes de configuration spécifiques au serveur Web. Bien qu’elles soient pratiques, nous aimerions utiliser ces certificats de différentes façons plus tard et utiliser la méthode pour mettre fin au service d’équilibrage des noeuds (je pense à l’avenir). Vous remarquerez que j’ai utilisé le paramètre – – Staging. Ceci est dû au fait que vous pourriez rencontrer des problèmes de configuration lors de la première configuration du certificat et que vous devez corriger le problème et exécuter letencrypt plusieurs fois jusqu’à ce que vous soyez sûr que tout fonctionne correctement. Le serveur en direct crypté Let’s a une limite de vitesse assez faible (au moment de la rédaction de cet article, seulement 5 certificats sont délivrés ou mis à jour pour le domaine public chaque semaine) pour empêcher les abus du processus rebelle, qui refuse de travailler pour vous pendant des heures, voire des jours si vous appelez régulièrement. Les serveurs temporaires ont des limites plus élevées et doivent donc être utilisés lors de la configuration initiale.
Letencrypt fonctionne et retourne OK, et tout ce dont vous avez besoin pour configurer le serveur Web Apache est dans le répertoire \/ etc \/ letencrypt. Le fichier le plus important pour moi pour la configuration Apache est \/ etc \/ letencrypt \/ live \/ le. Ian Jones. Com \/: [2]
{Apache log Dir} \/ access. Fusion des journaux Autoriser toutes les dérogations Nom du serveur le. Ian Jones. Gestion du serveur com [protégé par courriel] Documentroot \/ var \/ www \/ le. Ian Jones. Index des répertoires com. Index HTML. Php Error log ${Apache _ log Dir} \/ error. Log customlog ${Apache _ log Dir} \/ access. Fusion des journaux Autoriser toutes les dérogations # Vim: Syntax = Apache Ts = 4 SW = 4 STS = 4 Sr noet j’ai un https:\/\/le.ianmjones.com Utilisez le certificat de chiffrement let, fourni par le nodebalancer de ligne. Renouvellement automatique des certificats si vous avez suivi et essayé d’exécuter letencrypt plusieurs fois, vous remarquerez qu’il pose des problèmes à chaque fois. Si vous essayez de mettre en place un renouvellement automatique du certificat, des problèmes peuvent survenir. Heureusement, par défaut, il y a un paramètre Renew que vous pouvez utiliser pour spécifier que c’est tout ce que vous voulez faire, et il n’y a pas eu de changement depuis la dernière fois que vous avez configuré le domaine spécifié. Le cryptage Let’s recueillera toutes les informations requises à partir des fichiers associés dans \/ etc \/ letencrypt \/ Renew. Vous pouvez utiliser le drapeau – N (non interactif) pour ne pas poser de questions et vous pouvez également utiliser – agree tos et – M [protégé par courriel] Gardez tout en ordre. Au fait, une nouvelle commande letencrypt Renew est sur le point d’être publiée, ce qui devrait être encore mieux. Il vérifiera quels certificats attendent d’être renouvelés dans les 30 prochains jours et ne renouvellera que ces certificats. Il n’a pas besoin d’être informé des domaines et des méthodes d’authentification à utiliser. Avant de configurer Cron pour mettre à jour le certificat une fois par semaine, j’a i créé un petit script Shell à exécuter, donc j’ai gracieusement testé et redémarré Apache (en utilisant Apache 2ctl). Après le redémarrage d’Apache, le certificat sur le site reflète la nouvelle date d’expiration. Il ne reste plus qu’à crontab – E et à ajouter un script hebdomadaire (un meilleur administrateur pourrait ajouter quelque chose dans \/ etc \/ cron.weekly \/). 5 5 * * 1 \/ pièce \/ rein
W _ permet le chiffrement. SH & & \/ usr \/ sbin \/ apache2ctl elegant si vous voulez être très prudent avec la limite de vitesse de Let’s ENCRYPT, je vous recommande de définir le travail Cron à exécuter une fois par mois, peut – être deux fois par mois. La seule raison pour laquelle j’ai décidé de mettre à jour mon certificat de cryptage de let une fois par semaine était de m’assurer que le cycle de rétroaction de la phase de test de cryptage de let n’était pas trop long. Bien sûr, j’a I aussi temporairement ajouté une entrée en double dans crontab, mais quelques minutes plus tard, puis j’ai vérifié qu’Apache avait redémarré à l’heure prévue et que mon certificat SSL avait été mis à jour pour une nouvelle date et heure d’expiration. Cela garantit que Cron n’a aucun problème avec l’environnement dans lequel il exécute le script. Cette approche est facile à adapter et à étendre à votre serveur web préféré, de sorte que vous pouvez envoyer de nouveaux fichiers de certificats à d’autres serveurs, que ce soit SCP, rsync, ansible et ses pairs, ou partager des fichiers de configuration via glusterfs. Si vous avez configuré un ensemble de serveurs Web avec équilibrage de noeuds, vous avez certainement la méthode préférée pour synchroniser les profils. Nodebalancer https termination pour configurer la ligne nodebalancer qui gère le décryptage \/ chiffrement https et la mise à jour automatique avec un certificat de chiffrement let mis à jour, je vais d’abord configurer manuellement la nouvelle configuration du port nodebalancer. Parce que je voulais utiliser le même nodebalancer de ligne pour traiter HTTPS, et que j’avais configuré https avec la configuration qui gère le trafic sur le port 443, j’ai d’abord supprimé la configuration et ajouté une nouvelle configuration HTTPS. Vous remarquerez dans la capture d’écran ci – dessus deux nouveaux grands champs, le certificat SSL et la clé privée, nécessaires pour que nodebalancer puisse traiter le protocole HTTPS. Parce que je suis prêt.
Mes serveurs obtiennent des certificats à partir desquels nous cryptons et ils fournissent une chaîne complète. Clé privée. PEM correspond exactement aux deux nouveaux champs, et je copie simplement leur contenu dans les deux champs et je les enregistre. [protégé par courriel] :\/ Etc \/ letencrypt \/ live \/ le. Ian Jones. Com # Cat full Chain. PEM… [protégé par courriel] :\/ Etc \/ letencrypt \/ live \/ le. Ian Jones. Com # CAT privatkey. Après PEM, il suffit d’ajouter le noeud du serveur Web, en utilisant le port 80 comme connexion, puisque le trafic https \/ port 443 se termine maintenant sur nodebalancer. À ce stade, j’ai configuré https sur le nodeblancer linode en utilisant le certificat SSL qui a été renouvelé pour la dernière fois à partir du chiffrement let. Lorsque j’ai mis à jour le certificat nodebalancer plus tôt, j’ai configuré le serveur Web pour mettre à jour automatiquement son certificat chaque semaine. Maintenant que je suis passé à l’utilisation de mon certificat sur nodebalancer, je dois étendre le processus de renouvellement pour mettre à jour nodebalancer. Linode dispose d’une bonne API pour gérer votre compte, y compris non seulement votre serveur (linodes), mais aussi nodebalancer. Au départ, j’avais l’intention d’utiliser l’API originale avec l’URL PHP parce que la Bibliothèque PHP recommandée n’a pas été mise à jour et que les paramètres https n’ont pas été traités sur nodebalancer. J’a i testé une variété d’appels API avec une application Paw fantastique et j’ai regardé quelques exemples PHP qui utilisent le Code PHP pour générer une URL étendue. C’est bien, mais cela signifie que je dois réparer le stockage du nom d’utilisateur, du mot de passe et de la clé API, puis gérer le flux d’appel nécessaire pour sélectionner la configuration à mettre à jour, puis entrer les données, coder correctement, et ainsi de suite. Ce n’est pas la science des fusées, et nous faisons beaucoup de ce travail chaque jour en tant que développeurs PHP, mais, mon Dieu. Donc j’ai vérifié le CLI linode, et voici tout ce dont j’ai besoin, c’est l’insta.
M \/ – D vers le bas. Ian Jones. Com – W \/ var \/ www \/ lex. Ian Jones. Com \/ – D loi. Ian Jones. Com assurez – vous que le script de mise à jour est mis à jour avec le nouveau webroot et le nouveau domaine, puis lancez manuellement la commande pour mettre à jour le Service d’équilibrage de noeuds, à moins que vous ne vouliez utiliser un autre problème de certificat très limité chaque semaine. [protégé par courriel] :~# Mise à jour de la configuration du nodebalancer de ligne – – application d’étiquettes – – Port 443 – – certificat SSL \/ etc \/ letencrypt \/ live \/ le. Ian Jones. Com \/ full Chain. PEM – SSL key \/ etc \/ letencrypt \/ live \/ le. Ian Jones. Communication \/ clé privée. PEM a mis à jour le certificat nodebalancer config apps 443 sur lex. Ian Jones. Com reflète ces changements. J’ai écrit beaucoup de mots là – Bas, mais quand vous regardez le script de chiffrement Renew _ lets U. SH est très simple et n’a besoin que de quelques appels CLI avec les bons paramètres. Des outils en ligne de commande comme letencrypt et linode simplifient nos tâches. C’est la préparation qui a fonctionné, et savoir à l’avance quels domaines vous avez besoin d’obtenir des certificats vous aidera à réduire le nombre de fois que vous demandez des certificats (un gros problème dans la version bêta actuelle de Let’s ENCRYPT). Si vous avez décidé dès le départ d’utiliser https sur l’équilibreur de noeuds, vous n’avez même pas à interférer avec la configuration https sur le serveur Web et passer le port TCP 443. Vous pouvez maintenant facilement ajouter des noeuds de serveur Web à la configuration https du répartiteur de noeuds sans vous soucier de la configuration du certificat. Avez – vous déjà joué au cryptage? Comment vont l’API linode et son CLI? Nous aimerions voir vos suggestions dans les commentaires ci – dessous.