Autrefois, il était tout à fait normal que les sites Web servent du contenu sur le protocole HTTP traditionnel car la sécurité n'était pas un gros problème. Cependant, de nos jours en raison de la montée des cybercrimes tels que les vols d'identification, les vols de cartes de crédit, l'écoute, il est vraiment important de sécuriser la chaîne par laquelle communique avec le serveur. Let's Encrypt est une autorité de certificat qui fournit gratuitement des certificats SSL / TLS. Les certificats délivrés par eux sont valables pendant 3 mois, ce qui signifie 90 jours par rapport à un an ou plus par les autorités de certificat de qualité commerciale. Cependant, il offre la même protection que les certificats payants; Par conséquent, il est souvent choisi par de nombreux blogueurs et petits propriétaires de sites Web contre les cybercriminels. Cet article a l'intention de démontrer comment sécuriser les gouttelettes DigitalOcean avec Let's Encrypt.
Exigences
Ce guide utilise Ubuntu 16.04 En tant que système d'exploitation sur lequel le serveur Web fonctionne. Cependant, les mêmes étapes peuvent être utilisées pour toutes les autres versions Ubuntu ainsi que longtemps qu'il n'y a pas de différence dans les paramètres. Ce guide suppose que l'utilisateur a déjà un serveur Web installé, et c'est nginx. En tant que client SSH, Putty est utilisé, et comme l'éditeur de fichiers Nano est recommandé.
Solution
- Le serveur Web créé sur les gouttelettes est accessible via le protocole SSH. Téléchargez et installez le mastic à partir de son site officiel. La demande est entièrement gratuite.
Sudo apt-get install mastic
- Après avoir téléchargé Putty, allez-y et téléchargez le nano. Le but de PuTTY est d'accéder à la console Linux pour taper les commandes Shell, tandis que Nano est utilisé pour modifier des fichiers internes tels que le fichier par défaut de Nginx.
sudo apt-get install nano
- Lancez l'onglet Putty et accédez à la session.
- Dans le champ du nom d'hôte, tapez l'adresse IP de la gouttelet de DigitalOcean où le serveur Web est installé. L'adresse IP des gouttelettes peut être trouvée dans https: // cloud.DigitalOcean.com / gouttelettes. Dans le champ portuaire, type 22.
- Après avoir soumis tous les champs requis comme vu ci-dessus, appuyez sur OK pour appliquer les modifications et connecter à la gouttelette. Lors de la connexion au système, il demandera au nom d'utilisateur et au mot de passe de la gouttelettes. Le nom d'utilisateur et le mot de passe sont tous deux envoyés par e-mail à l'e-mail enregistré dans DigitalOcean lors de la création de la gouttelette.
- Ce guide utilise CERTBOT, un outil tiers pour automatiser l'ensemble du processus de récupération et de renouvellement des certificats numériques. CERTBOT a son propre site Web d'où les commandes à utiliser peuvent être générées avec facilité. Selon CERTBOT, les bonnes commandes pour installer CERTBOT sur Ubuntu sont celles. D'abord, il met à jour les informations du package dans le référentiel local, puis il installe les propriétés logicielles commands du package qui fournit des scripts utiles dans la gestion des réalisations personnelles (PPA), puis il installe CERTBOT, puis il met à jour le référentiel local, puis il installe enfin le package python Certbot nginx. Assurez-vous que tous ces packages sont installés correctement avant de se diriger vers l'étape suivante.
$ sudo apt-get updat
$ sudo apt-get install logiciel-properties-commun
$ sudo add-att-repository ppa: Certbot / Certbot
$ sudo apt-get updat
$ sudo apt-get install python-certbot-nginx
- Accédez au site Web d'où le domaine a été acheté. Ce guide utilise Porkbun comme registraire du domaine, puis ajouter l'enregistrement A au domaine. Le type est un enregistrement, l'hôte est vide si l'IP est associé au domaine racine, sinon utilisez le nom de sous-domaine sans le domaine racine, par exemple s'il s'agit de nucuta.com, utilisez simplement www. Comme le type de réponse, l'adresse IP de la gouttelette.
- De la même manière, redirigez le trafic www vers le domaine racine que suivant. Le type est «cname», l'hôte est «www», la réponse est «nucuta.com »ou votre domaine. Cette étape est importante car elle redirige tout le trafic www vers le domaine racine.
- Utilisez la commande suivante sur Putty pour accéder au fichier par défaut de Nginx. Le fichier par défaut par défaut utilise un bloc de serveur où se trouve le domaine principal. Nano Editor est fortement recommandé car il est tout à fait pratique à utiliser par rapport aux autres.
sudo nano / etc / nginx / sites-disponible / par défaut
- Dans le fichier par défaut, accédez au bloc serveur et redirigez le trafic HTTP vers HTTP
server_name nucuta.com www.nucuta.com
- Tapez la commande suivante pour redémarrer le serveur Web Nginx. Chaque fois qu'une modification a été apportée dans le fichier par défaut, l'ensemble du serveur Nginx doit être redémarré pour que de nouvelles modifications aient un effet.
sudo systemctl reload nginx
- Par défaut, le pare-feu bloque tout le trafic, sauf au port 80 et 22. Le HTTPS utilise le port 443; il doit donc être ouvert manuellement pour accéder au serveur Web du côté client. L'ouverture du port dépend du pare-feu.
Dans CSF (pare-feu du serveur configuré)
- Ouvre le fichier de configuration CSF en tapant la commande suivante.
nano / etc / csf / csf.confli
- Ajouter les ports suivants à TCP dans et hors.
Tcp_in = "20,21,22,25,53,80,443"
Tcp_out = "20,21,22,25,53,80,443"
- Redémarrer le LCR en tapant
CSF -R
Dans l'USF (pare-feu simple)
- Tapez les deux commandes suivantes pour ajouter HTTPS à la liste des exceptions. Le package «Nginx complet» a les ports HTTP et HTTPS; Par conséquent, l'ajout du package complet permet à la fois le trafic dans et l'extérieur.
sudo ufw permettre 'nginx complet'
sudo ufw delete permettre 'nginx http'
- Tapez la commande suivante pour voir le statut
Statut UFW
- Consultez le port 443 à partir d'un site Web externe pour vous assurer qu'il s'ouvre à coup sûr. Si le port est ouvert, il dira «le port 443 est ouvert»
- Utilisez maintenant le certificat pour récupérer le certificat SSL dans le domaine. D paramètre est nécessaire pour spécifier le domaine. Let's Encrypt libère un certificat pour la racine et le sous-domaine www. En avoir un pour l'une ou l'autre version émettra un avertissement dans le navigateur si un visiteur accède à l'autre version; Il est donc important d'obtenir le certificat pour les deux versions.
sudo Certbot --nginx -d nucuta.com -d www.nucuta.com
- CERTBOT demandera à rediriger tout le trafic HTTP vers HTTPS, mais il n'est pas nécessaire car cela est déjà fait dans l'une des étapes précédentes.
- Accédez maintenant au site Web de SSL Lab et consultez la qualité ou tout autre problème du certificat et sa configuration. https: // www.sllabs.com / ssltest /
- Si la configuration actuelle n'est pas suffisamment sécurisée, accédez au générateur de configuration de Mozilla SSL et générez les paramètres de votre serveur Web. https: // mozilla.github.IO / serveur-côté-TLS / SSL-Config-Generator /. Puisque ici utilise nginx, assurez-vous d'utiliser Nginx comme serveur Web. Il offre trois options, intermédiaire, vieux et moderne. L'ancienne option rend le site Web compatible avec pratiquement tous les navigateurs, y compris des navigateurs super anciens comme IE 6, tandis que l'option intermédiaire le rend idéal pour les utilisateurs moyens, l'option moderne génère une configuration requise pour une sécurité maximale, mais en tant que compromis, le site Web ne fonctionnera pas correctement sur les navigateurs plus anciens. Il est donc fortement recommandé pour les sites Web où la sécurité est une préoccupation majeure.
- Accédez à votre site Web et cliquez avec le bouton droit sur l'icône de verrouillage, puis «Certificat» pour voir le certificat.
- S'il affiche une date future après à valide à partir de l'option, ce qui signifie que le processus d'acquérir du certificat a été achevé. Cependant, il est important de rediriger le trafic vers la version pertinente du domaine, par exemple le trafic HTTP et www peut être redirigé le domaine racine HTTPS comme le montre ce guide. Le certificat sera automatiquement renouvelé par CERTBOT; Par conséquent, il est à jamais disponible pour le propriétaire du site Web gratuitement.