CodeGym /Cours /Docker SELF /Déploiement d'un serveur web avec des hôtes virtuels et S...

Déploiement d'un serveur web avec des hôtes virtuels et SSL

Docker SELF
Niveau 7 , Leçon 5
Disponible

Déploiement d'un serveur web avec des hôtes virtuels et SSL

1. Préparation de l'environnement

Il est temps de tout rassembler. Aujourd'hui, on déploie un serveur avec plusieurs hôtes virtuels et on leur connecte HTTPS. On va tester, débugger et faire les derniers réglages.

Notre mission

Dans ce projet, on va déployer deux sites sur un seul serveur web :

  • example.com
  • test.com

Pour chaque site, on configurera un hôte virtuel, on activera HTTPS et on montrera les étapes de débogage et de vérification. Vous êtes prêts ? C'est parti !

Préparation

Avant de commencer, assurons-nous que tout est bien configuré :

  1. Vous avez déjà un serveur web installé (Nginx ou Apache).

    • Si vous utilisez Nginx :

      sudo apt-get update
      sudo apt-get install nginx
      
    • Ou Apache :

      sudo apt-get update
      sudo apt-get install apache2
      
  2. Le package Certbot pour travailler avec SSL est installé.

    • Pour Nginx :

      sudo apt-get install certbot python3-certbot-nginx
      
    • Pour Apache :

      sudo apt-get install certbot python3-certbot-apache
      
  3. Vous avez accès au serveur où les DNS pour les domaines example.com et test.com sont configurés, ou vous pouvez utiliser /etc/hosts pour les tests.


2. Configuration du répertoire pour chaque site

On commence par créer les répertoires et les fichiers pour nos sites.

Étape 1 : Créer des dossiers pour les sites

sudo mkdir -p /var/www/example.com
sudo mkdir -p /var/www/test.com

Étape 2 : Créer des fichiers HTML de test

On va créer un fichier HTML basique pour chaque site :

example.com

sudo nano /var/www/example.com/index.html

Contenu :

<!DOCTYPE html>
<html>
<head>
    <title>Bienvenue sur example.com</title>
</head>
<body>
    <h1>Ceci est example.com</h1>
    <p>Bienvenue sur example.com ! Le site est en ligne et sécurisé avec SSL !</p>
</body>
</html>

test.com

sudo nano /var/www/test.com/index.html

Contenu :

<!DOCTYPE html>
<html>
<head>
    <title>Bienvenue sur test.com</title>
</head>
<body>
    <h1>Ceci est test.com</h1>
    <p>Bienvenue sur test.com ! Le site est opérationnel et sécurisé avec SSL !</p>
</body>
</html>

3. Configuration des hôtes virtuels

On va créer un fichier de configuration séparé pour chaque site.

Étape 1 : Configuration pour Nginx

example.com

sudo nano /etc/nginx/sites-available/example.com

Contenu :

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

test.com

sudo nano /etc/nginx/sites-available/test.com

Contenu :

server {
    listen 80;
    server_name test.com www.test.com;

    root /var/www/test.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

On active la configuration :

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

On redémarre le serveur :

sudo nginx -t
sudo systemctl reload nginx

Étape 2 : Configuration pour Apache

example.com

sudo nano /etc/apache2/sites-available/example.com.conf

Contenu :

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example.com
    <Directory /var/www/example.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

test.com

sudo nano /etc/apache2/sites-available/test.com.conf

Contenu :

<VirtualHost *:80>
    ServerName test.com
    ServerAlias www.test.com

    DocumentRoot /var/www/test.com
    <Directory /var/www/test.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

On active les configurations :

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl reload apache2

4. Configuration de HTTPS pour les sites

Maintenant, on va configurer SSL pour les deux sites en utilisant Let’s Encrypt.

sudo certbot --nginx
# ou pour Apache :
sudo certbot --apache

Le processus vous proposera de sélectionner pour quels sites générer les certificats. Choisissez example.com et test.com. Certbot mettra automatiquement à jour la configuration des serveurs.


5. Vérification du fonctionnement des sites

Après avoir terminé la configuration, visitez vos sites :

Vous devriez voir les pages HTML créées. Vérifiez que le navigateur affiche "Sécurisé" (Secure) dans la barre d'adresse.


6. Débogage et vérification

Si quelque chose ne va pas, vérifie les logs :

  • Pour Nginx :

    sudo tail -f /var/log/nginx/error.log
    
  • Pour Apache :

    sudo tail -f /var/log/apache2/error.log
    

Ou teste l'accessibilité avec curl :

curl -I http://example.com
curl -I https://example.com

7. Renouvellement des certificats

Certbot met automatiquement à jour les certificats en utilisant le cron du système. Pour vérifier, tu peux exécuter manuellement :

sudo certbot renew --dry-run

Et voilà, étape par étape, on a configuré un serveur web prenant en charge plusieurs sites et HTTPS. Tu viens de parcourir tout le chemin d’un serveur vide à un serveur fonctionnant avec des hosts virtuels et SSL. Maintenant, ton serveur est prêt à montrer ses sites au monde. Trop cool, non ?

1
Опрос
Travailler avec les serveurs web sous Linux,  7 уровень,  5 лекция
недоступен
Travailler avec les serveurs web sous Linux
Travailler avec les serveurs web sous Linux
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION