• Assurez la sécurité des applications de la bonne manière! Détectez, protégez, surveillez, accélérez et plus encore…
  • Apprenons à installer le serveur HTTP Apache et à le sécuriser avec le certificat Let's Encrypt.

    Introduction

    Apache est l'un des serveurs Web HTTP les plus utilisés. Configurer l'apache et le sécuriser avec un certificat SSL est la première étape que vous devez faire pour vos applications Web.

    Dans ce didacticiel, vous apprendrez à configurer Apache pour votre site Web sur Ubuntu et CentOS. J'ai testé ça sur VM DigitalOcean.

    À des fins de démonstration. Je vais utiliser le nom de domaine de test test.sanakil.xyz, lequel est suralimenté par Cloudflare.

    N'oubliez pas de remplacer le test.sanakil.xyz domaine avec votre domaine réel. 📢

    Création d'enregistrements DNS

    Connectez-vous à Cloudflare ou à votre registraire de domaine (sinon Cloudflare) et créez un Un enregistrement pour faire pointer le domaine vers l'adresse IP de la VM cloud.

    Connectez-vous à votre serveur cloud via SSH.

    Installer Apache (Ubuntu)

    Pour mettre à jour les packages disponibles

    sudo apt-get update

    Installez Apache

    sudo apt-get install apache2

    Autorisez les ports 80 et 443 dans votre pare-feu pour le serveur HTTP.

    sudo ufw allow 'Apache Full'

    Vérifiez que votre apache installé fonctionne correctement

    sudo systemctl status apache2

    Installer Apache (CentOS)

    Mettez à jour les packages disponibles.

    sudo yum update

    Installez Apache

    sudo yum install httpd

    Ajoutez les ports 80 et 443 dans le pare-feu pour accéder à l'application Web.

    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

    Démarrez Apache et vérifiez l'état de fonctionnement

    sudo systemctl start httpd
    sudo systemctl status httpd

    Créer VirtualHost pour le site Web

    Un hôte virtuel peut être créé de deux manières en fonction du type d'application Web / de site Web que nous servons.

    Supposons que l'application dispose déjà d'un serveur Web tel que Node s'exécutant sur un port. Nous pouvons utiliser un proxy pour le servir dans apache. Ou si l'application ne sert que les fichiers comme des sites statiques. Nous pouvons spécifier le chemin de l'application à servir dans apache.

    Créez un fichier hôte virtuel dans apache - le fichier de configuration peut avoir n'importe quel nom. Mais le garder avec le nom de domaine que nous allons servir l'application Web sera mieux pour une identification facile.

    Configuration supplémentaire pour CentOS

    Dans CentOS (SELinux), tout n'est pas activé par défaut comme Ubuntu.

    Nous devons créer compatible avec les sites et sites disponibles dossiers dans apache.

    compatible avec les sites - dit à Apache de servir le visiteur avec les fichiers de configuration qu'il contient

    sites disponibles - stocker les fichiers de configuration de l'hôte virtuel

    sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

    Dites maintenant à l'apache de lire le fichier conf dans le dossier des sites activés.

    sudo vi /etc/httpd/conf/httpd.conf

    Ajoutez la ligne ci-dessous à la fin du fichier

    IncludeOptional sites-enabled/*.conf

    Configurer Apache pour servir les fichiers

    • Créez un dossier pour diffuser votre application Web
    sudo mkdir -p /var/www/test.sanakil.xyz/webapp
    sudo vi /var/www/test.sanakil.xyz/webapp/index.html
    • Collez l'extrait de code HTML ci-dessous pour le test
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>Apache webapp</title>
    </head>
    <body>
    <h1>My Apache webapp is working in test.sanakil.xyz</h1>
    </body>
    </html>
    • Créez un dossier pour générer et stocker des journaux
    sudo mkdir -p /var/www/test.sanakil.xyz/log
    sudo touch /var/www/test.sanakil.xyz/request.log
    sudo touch /var/www/test.sanakil.xyz/log/error.log
    Configuration de l'hôte virtuel
    • Ouvrez le fichier conf (Ubuntu)
    sudo vi /etc/apache2/sites-available/test.sanakil.xyz.conf
    • Ouvrez le fichier conf (CentOS)
    sudo vi /etc/httpd/sites-available/test.sankil.xyz.conf
    • Collez l'extrait de configuration ci-dessous en modifiant votre-nom-de-domaine
    <VirtualHost *:80>
    ServerName test.sanakil.xyz
    ServerAlias test.sanaki.xyz
    DocumentRoot /var/www/test.sanakil.xyz/webapp
    ErrorLog /var/www/test.sankil.xyz/log/error.log
    CustomLog /var/www/test.sanakil.xyz/log/requests.log combined
    </VirtualHost>
    • Donnez l'autorisation requise pour votre dossier.
    sudo chown -R $USER:$USER /var/www/test.sanakil.xyz
    sudo chmod -R 755 /var/www/test.sanakil.xyz
    Activez votre fichier de configuration d'hôte virtuel dans Apache (Ubuntu)
    sudo a2ensite test.sanakil.xyz.conf

    Désactivez le fichier de configuration par défaut pour des raisons de sécurité

    sudo a2dissite 000-default.conf

    Redémarrez apache pour que les modifications prennent effet.

    sudo systemctl restart apache2

    Activez votre fichier de configuration d'hôte virtuel dans Apache (CentOS)

    Créer un lien symbolique pour Apache

    sudo ln -s /etc/httpd/sites-available/test.sanakil.xyz.conf 
    /etc/httpd/sites-enabled/test.sanakil.xyz.conf

    Redémarrez apache pour que les modifications prennent effet.

    sudo systemctl restart httpd

    Activation du protocole HTTPS

    L'activation de HTTPS dans le serveur Web Apache dans Ubuntu a été facilitée en utilisant certbot et Encryptons. 

    Chiffrons est une organisation à but non lucratif qui a fourni gratuitement un certificat SSL pour des millions de sites Web.

    Certbot est un logiciel qui configurera automatiquement HTTPS pour notre site Web à l'aide de Let's encrypt.

    Ajouter et installer certbot pour apache (Ubuntu)

    sudo add-apt-repository ppa:certbot/certbot
    sudo apt install python-certbot-apache

    Ajouter et installer certbot pour apache (CentOS)

    sudo yum install epel-release
    sudo yum install certbot python2-certbot-apache mod_ssl

    Obtenez un certificat SSL

    sudo certbot --apache -d your-domain-name

    Si toute la vérification est effectuée par certbot sans aucun problème.

    Il demandera une redirection HTTPS. Sélectionnez l'option 2 et entrez.

    C'est tout.

    Si tout fonctionne correctement, https://test.sanakil.xyz affichera une page d'index HTML de base que nous avons créée.

    Conclusion

    J'espère que cela vous donne une idée de l'installation et de la mise en œuvre d'un certificat SSL sur Apache.

    Ensuite, découvrez comment implémenter un certificat dans Nginx.