• Assurez la sécurité des applications de la bonne manière! Détectez, protégez, surveillez, accélérez et plus encore…
  • 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 à [email protected]
    • 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.

    [email protected]:~# 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
    [email protected]:/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.
    [email protected]:~# 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.