Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

Comment implémenter le certificat ZeroSSL dans Apache et Nginx?

zérossl apache nginx
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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.

Zéro SSL

  • 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.

Merci à nos commanditaires
Plus de bonnes lectures sur Apache HTTP
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder