# Serveur Web

# HTTPS et Certbot

Pour générer un certificat et l'ajouter automatiquement :

```
sudo certbot --apache
```

Pour étendre la portée d'un certificat à d'autres noms et/ou alias :

```
sudo certbot --expand -d existingdomain.com -d newdomain.com
```

# Création de Virtual Hosts

## Pré-requis

- Paquet Apache installé : ```
    sudo apt update && sudo apt install apache2
    ```
- Accès root ou sudo
- Nom de domaine pointant vers le serveur (ou modification locale de `/etc/hosts`)

---

## Création du répertoire du site

```
sudo mkdir -p /var/www/mon-site.com/public_html
sudo chown -R $USER:$USER /var/www/mon-site.com/public_html
sudo chmod -R 755 /var/www
```

Exemple de fichier de test :

```
echo "<h1>Bienvenue sur mon-site.com</h1>" > /var/www/mon-site.com/public_html/index.html
```

---

## Création du fichier de configuration

Les fichiers sont stockés dans `/etc/apache2/sites-available/`.

```
sudo nano /etc/apache2/sites-available/mon-site.com.conf
```

Exemple de configuration minimale :

```
<VirtualHost *:80>
    ServerName mon-site.com
    ServerAlias www.mon-site.com
    
    DocumentRoot /var/www/mon-site.com/public_html
    
    ErrorLog ${APACHE_LOG_DIR}/mon-site.com_error.log
    CustomLog ${APACHE_LOG_DIR}/mon-site.com_access.log combined
</VirtualHost>
```

---

## Activation du site

```
sudo a2ensite mon-site.com.conf
sudo systemctl reload apache2
```

---

## Vérification

- Tester la configuration Apache : ```
    sudo apache2ctl configtest
    ```
- Aller sur `http://mon-site.com` ou `http://<IP>`

---

## Désactiver un site

```
sudo a2dissite mon-site.com.conf
sudo systemctl reload apache2
```

---

## Notes utiles

- Répertoire des sites disponibles : `/etc/apache2/sites-available/`
- Répertoire des sites activés : `/etc/apache2/sites-enabled/`
- Fichier par défaut : `/etc/apache2/sites-available/000-default.conf`