Examinons la possibilité d'obtenir un certificat SSL / TLS GRATUIT de ZeroSSL et de l'implémenter dans les serveurs Web Apache et Nginx.
Introduction
Vous avez peut-être beaucoup entendu parler de termes tels que HTTP et HTTPS. Dans les premiers temps, un protocole a été défini, qui a été nommé comme Protocole de transfert HyperText (HTTP). C'est un moyen de communiquer d'un navigateur à un serveur Web. Lorsque cette communication se produit, les données voyageant sur un protocole HTTP, voyagent simplement dans les formats de texte clair. Pour cette raison, il a été réalisé que la communication HTTP n'est pas sécurisée et que les pirates ont pu attaquer et intercepter les messages importants et sensibles.
Pour résoudre ce problème, le HTTPS le protocole est entré en scène. Il s'agit d'un protocole sécurisé et l'acronyme signifie Protocole de transfert hypertexte sécurisé. Il effectue simplement le cryptage des données lorsque la communication se produit, et les données voyagent du navigateur web sur le serveur Web. Ainsi, si un pirate informatique récupère ces informations, tout est crypté.
How do HTTPS works?
Le protocole HTTPS fonctionne sur l'une ou l'autre des deux choses, à savoir SSL (Secure Socket Layer) ou TLS (Transport Layer Security). Les deux outils utilisent PKI (Public Key Infrastructure). PKI, à son tour, utilise deux clés, à savoir. clés publiques et privées. Tout ce qui est chiffré à l'aide de la clé publique peut être déchiffré à l'aide de la clé privée et vice versa.
Lorsque nous installons un Certificat SSL / TLS sur notre site Web, le 'cryptage des donnéesLa fonctionnalité est activée. SSL est utilisé comme point de contrôle pour garantir la sécurité des données échangées sur Internet entre le navigateur de l'utilisateur et le serveur du site Web.
Getting ZeroSSL certificate
Zéro SSL est une autorité de certification (CA) qui rend la chose très facile pour tout le monde d'installer un certificat pour sécuriser le site Web. Vous pouvez obtenir gratuitement jusqu'à 3 certificats avec une validité de 90 jours.
- Inscrivez-vous avec ZeroSSL
- Une fois connecté, la page ci-dessous apparaîtra. Cliquer sur 'Nouveau certificat. '
- Saisissez l'URL que vous souhaitez sécuriser et cliquez sur le bouton 'L'étape suivante.»
- Sélectionnez le certificat de 90 jours et Suivant
- Continuons avec l'option de génération automatique de CSR
- Continuez avec le plan «gratuit»
Ensuite, vous devrez vérifier la propriété du domaine. Il y a quelques options.
- DNS - si vous pouvez ajouter une entrée d'enregistrement DNS
- E-mail – si vous pouvez recevoir l'e-mail à admin@votredomaine.com
- Téléchargement de fichier - si vous pouvez télécharger un fichier à la racine du domaine
Choisissez ce qui fonctionne pour vous. Je vais procéder à l'entrée DNS.
- J'ai ajouté le CNAME et je suis prêt à valider le domaine.
- Enfin, une fois vérifié, le certificat SSL est prêt à être téléchargé.
Voici mes certificats téléchargés.
Il est temps de le mettre en œuvre.
Implementing on Apache
Ce qui suit, je vais installer Apache sur Ubuntu.
Connectez-vous au serveur et installez avec apt-get
commander.
sudo apt-get install apache2
Découvrons si Apache fonctionne en utilisant systemctl commander.
root@geekflare-lab:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Sat 2020-05-23 16:15:56 UTC; 3s ago
Process: 7852 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
Process: 14179 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 14196 (apache2)
Tasks: 55 (limit: 2362)
CGroup: /system.slice/apache2.service
├─14196 /usr/sbin/apache2 -k start
├─14199 /usr/sbin/apache2 -k start
└─14200 /usr/sbin/apache2 -k start
May 23 16:15:56 geekflare-lab systemd[1]: Starting The Apache HTTP Server...
May 23 16:15:56 geekflare-lab apachectl[14179]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'Serve
May 23 16:15:56 geekflare-lab systemd[1]: Started The Apache HTTP Server.
Super, il fonctionne.
Mon domaine (lab.geekflare.com) pointe déjà vers ce serveur Apache.
Mais comme vous pouvez le voir, il n'est pas sécurisé, et par conséquent, nous allons configurer le certificat que nous avons obtenu de ZeroSSL.
- Créons un répertoire appelé
sslCA
sous / etc pour stocker les fichiers de certificat.
cd /etc
mkdir sslCA
- Transférez les fichiers dans le dossier nouvellement créé sur le serveur
root@geekflare-lab:/etc/sslCA# ll
total 20
drwxr-xr-x 2 root root 4096 May 18 12:13 ./
drwxr-xr-x 92 root root 4096 May 22 06:07 ../
-rw-r--r-- 1 root root 2430 May 18 05:37 ca_bundle.crt
-rw-r--r-- 1 root root 2292 May 18 05:37 certificate.crt
-rw-r--r-- 1 root root 1702 May 18 05:37 private.key
- Activer le module SSL
sudo a2enmod SSL
- Nous devrons redémarrer le serveur Web pour que les modifications puissent être reconnues.
sudo service apache2 restart
- L'étape suivante consiste à configurer les fichiers de certificat sur le fichier de configuration SSL Apache.
cd /etc/apache2/mods-available
- Le nom du fichier est ssl.conf. Nous devons ajouter ce qui suit dans
<VirtualHost
Directive.
<VirtualHost _default_:443> SSLEngine on SSLCertificateFile /etc/SSLCA/certificate.crt SSLCertificateKeyFile /etc/SSLCA/private.key SSLCertificateChainFile /etc/SSLCA/ca_bundle.crt
</VirtualHost>
- Enregistrez le fichier et quittez
:wq!
Après avoir effectué le redémarrage, le SSL sera activé sur le site. Accédons au site en utilisant https: //
Et, comme vous pouvez le voir, "La connexion est sûre ». Cela signifie que notre certificat SSL a été appliqué avec succès à notre serveur Web.
Implementing on Nginx
Nginx se trouve dans les référentiels par défaut d'Ubuntu, il est donc possible de l'installer à partir d'ici en utilisant le système d'emballage approprié.
- La commande ci-dessous est utilisée pour installer le "Nginx ».
sudo apt install nginx
- Une fois l'installation réussie, nous pouvons démarrer Nginx à l'aide de la commande ci-dessous.
systemctl start nginx
- Vérifiez l'état de Nginx.
root@geekflare-lab:~# systemctl status nginx ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-05-19 06:54:00 UTC; 4 days ago Docs: man:nginx(8) Process: 8634 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS) Process: 8661 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 8653 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 8664 (nginx) Tasks: 2 (limit: 2362) CGroup: /system.slice/nginx.service ├─8664 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─8707 nginx: worker process May 19 06:54:00 geekflare-lab systemd[1]: Starting A high performance web server and a reverse proxy server... May 19 06:54:00 geekflare-lab systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument May 19 06:54:00 geekflare-lab systemd[1]: Started A high performance web server and a reverse proxy server.
- Comme prévu, le navigateur affichera l'avertissement car une connexion à ce site n'est pas sécurisée.
Implémentons rapidement le certificat pour sécuriser le site en utilisant HTTPS.
- Créons
example.com.conf
déposer à/etc/nginx/conf.d
emplacement. Le contenu du fichier ressemblera à celui ci-dessous.
server {
listen 443 SSL default_server;
listen [::]:443 SSL default_server ;
server_name lab.geekflare.com lab.geekflare.com;
root /var/www/html;
}
- Il est maintenant nécessaire d'ajouter un nom de fichier de certificat dans
nginx.conf
fichier qui se trouve dans "/etc/nginx
"Répertoire. - Ajoutez ce qui suit dans la directive http
ssl_certificate /etc/sslCA/certificate.crt;
ssl_certificate_key /etc/sslCA/private.key;
- Redémarrez Nginx pour vérifier les modifications
systemctl restart nginx
Et c'est reparti.
Intéressé à apprendre Nginx? Regarde ça cours de base.
Testing SSL/TLS Configuration
La configuration par défaut peut être vulnérable, et je suggère fortement tester votre site après avoir implémenté le certificat. Il existe un certain nombre de outils en ligne que vous pouvez consulter ici.
Conclusion
J'espère que cela vous donne une idée d'obtenir un certificat de ZeroSSL et de l'implémenter dans deux serveurs Web les plus populaires.