Machine Virtuelle APACHE

Rédaction le 06/12/2018
Dernière mise à jour le 04/2020

Maintenant que nous avons mis en place notre serveur domotique, son hyperviseur Proxmox et les briques de base de notre installation réseau, nous allons installer notre première machine virtuelle pour installer Apache !

Mais c’est quoi Apache ? Faisons simple, c’est un serveur Web, d’ailleurs il me semble que c’est le plus vieux ! 1995, la vache, ça ne nous rajeunit pas tout ça !

https://fr.wikipedia.org/wiki/Apache_HTTP_Server

Il en existe d’autres comme Nginx, chacun a ses arguments pour/contre. Pour ma part, mon choix s’est porté sur Apache car je n’ai pas réussi à mettre en place ce que je souhaitais avec Nginx tout simplement et finalement le peu de fois où j’ai dû mettre en place un serveur Web, c’était Apache, alors pourquoi changer ?

Mais c’est quoi l’objectif ? Au lieu de rediriger différents ports de notre routeur vers des machines dédiées à des fonctions telles que Jeedom, le routeur, Proxmox, etc ; nous allons :

https://www.globalsign.fr/fr/centre-information-ssl/definition-ssl/

Pour comprendre l’intérêt du SSL, lisez ceci. D’ailleurs c’est le même protocole qui est utilisé avec votre VPN.

Commençons déjà par installer notre première machine virtuelle mais avant, téléchargeons l’ISO d’une distribution Linux.

Ajout d’un CD d’installation Debian

Pour reproduire l’effet, je mets le CD d’installation dans un lecteur et pour l’avoir toujours sous le coude, téléchargeons l’ISO d’une distribution reconnue et validée notamment pour Jeedom.

https://www.debian.org/distrib/

Direction le site de Debian pour télécharger une release 9 ou plus récente si vous le souhaitez
On veut télécharger une image d’installatio

Pour une image correspondante à une architecture amd64 :

Choix d’une architecture amd64

Puis télécharger sur votre ordinateur l’ISO correspondant :

Télécharger l’ISO correspondant sur votre ordinateur

Ensuite rendez-vous dans l’interface de gestion Proxmox pour ajouter à la partition local du contenu, c’est-à-dire l’ISO. Cliquez sur Upload pour ajouter l’ISO téléchargé :

On souhaite ajouter un ISO de Debian9

Puis on sélectionne l’ISO téléchargé sur votre ordinateur et on patiente le temps de téléversement (upload) sur votre serveur Proxmox.

Ajout d’un ISO

Et voilà le disque d’installation de Debian9 est donc disponible pour pouvoir installer nos machines virtuelles.

Note : vous n’avez pas besoin de télécharger les versions suivantes de Debian9 puisque lorsque vous souhaitez mettre à jour une machine virtuelle elle aura les mêmes versions que celles générées sur le site de Debian. Évident pour certains, besoin d’être dit pour certains.

Vous pouvez télécharger d’autres ISO si vous le souhaitez, même Windows !

Installation de notre machine virtuelle (partie générique)

Cette partie sera utilisée pour toutes les machines virtuelles que nous allons installer sous Proxmox. Petit HS, cette procédure peut être utilisée si vous déployez des machines virtuelles sur un autre hyperviseur ou dans la plateforme de virtualisation de votre NAS préféré QNAP ou Synology (ou d’autres !).

Vous avez aussi la possibilité d’utiliser un container (plus léger et moins gourmand en ressources) mais je fais le choix de rester sur des machines virtuelles personnellement.

Quelques lignes pour comprendre la différence entre containers et machines virtuelles :

https://www.lemondeinformatique.fr/actualites/lire-containers-ou-vm-comment-faire-le-bon-choix-64793.html

https://openclassrooms.com/fr/courses/3631731-introduction-aux-conteneurs/3637891-machines-virtuelles-vs-conteneurs

https://www.proxmox.com/en/proxmox-ve/features

Quelques liens pour comprendre machines virtuelles vs containers

Un point important toutefois, si vous devez faire du partage de périphériques USB, la machine virtuelle s’impose.

Assez discuté, on y va ! En haut à droite de votre interface Proxmox :

Création d’une VM (1)

On remplit l’onglet Général :

  • le noeud, c’est votre serveur domotique ;
  • le VM ID, je démarre à 100 puis 101, 102 etc – c’est le numéro de votre VM (libre à vous !) – attention, par contre, si vous souhaitez changer l’ID ensuite c’est touchy !
  • le nom. Personnellement, j’indique l’OS installé – service soit Debian9-Apache,
  • et je souhaite que cette VM démarre de manière automatique (en cas de coupure électrique par exemple).
Création d’une VM (2)

Ensuite, nous devons indiquer le disque qui nous servira à installer notre distribution Linux Debian 9 (celui téléchargé précédemment) :

Création d’une VM (3)

Puis nous allons configurer le disque dur de cette machine virtuelle :

  • un disque dur de type virtio0,
  • que l’on stocke dans la partition local-lvm,
  • d’une taille de 8 Go (pas besoin de beaucoup pour Apache !) – au besoin vous pourrez toujours étendre par le bouton Re-dimensionner dans l’onglet Matériel de votre VM.
Création d’une VM (4)

Nous arrivons à l’onglet CPU :

  • 1 socket,
  • 1 cœur pas besoin de plus ! Là encore vous pourrez toujours rajouter de la ressource si besoin est !
Création d’une VM (5)

Puis la mémoire :

  • Je préfère mettre en place une mémoire minimale et maximale personnellement dans mes VM,
  • pour Apache, le min à 256 Mo,
  • le max à 512 Mo.
Création d’une VM (6)

On arrive enfin au dernier onglet avant confirmation, celui du réseau. Personnellement, je préfère générer mon adresse MAC (pensez à tenir à jour votre Excel de suivi des IP/MAC) avant l’installation par le site :

https://www.miniwebtool.com/mac-address-generator/

Pensez à choisir le format avec les :
Génération de l’adresse MAC

Puis on rentre l’adresse MAC dans ce dernier écran mais ne validez pas tout de suite :

Création d’une VM (7)

Entre temps direction l’interface d’administration de votre routeur préféré, onglet Serveur DHCP et attribuez une adresse IP fixe à cette adresse MAC avant qu’elle ne démarre. Cette IP sera que nous utiliserons pour nous connecter par Bitvise SSH ou Putty par exemple.

Sur le routeur Asus, direction Réseau Local puis Serveur DHCP, puis :

Ajout de l’adresse MAC et de son IP correspondante dans l’interface Asus

Pensez à ajouter la réservation puis Appliquez en bas ! Patientez le temps de re-chargement. De retour côté Proxmox, terminez !

Pensez à cliquer sur “Start after created” pour que tout se lance ensuite !

Connectons-nous à notre machine virtuelle. Si elle a démarré (vous avez lu la légende au-dessus ?) sinon cliquez sur Démarrer, puis onglet Console.

La console ou l’écran virtuel de votre machine virtuelle

On choisit :

  • Install – l’installation se déroule en mode texte, plus rapide (faites entrée),
  • French – plus pratique,
  • France, again :),
  • Français, encore !
Patientez, ça charge …
Puis le réseau se configure … (vous aurez l’IP réservée dans le serveur DHCP)

Puis indiquons quelques éléments de paramétrage :

  • le nom de la machine : personnellement, j’indique VM-DEB9-SERVICE pour VM = machine virtuelle, DEB9 = distribution installée, SERVICE = Apache, Jeedom, etc. Cela me permet de les distinguer facilement sur le réseau ;
  • le mot de passe du compte root (on se souvient de l’explication administrateur/utilisateur sous Proxmox) à rentrer deux fois ;
  • le nom d’un utilisateur différent de celui du root : user, boss, tonton, papa, … ce que vous voulez !
  • son nom, moi je mets le même ;
  • son mot de passe à rentrer deux fois.

Ensuite, je laisse la gestion du disque par Linux en mode assisté, je choisis le disque virtuel de 8 Go (ici pour Apache) que nous avons indiqué lors de la création de la VM :

Partitionnement du disque Linux (1)

Et je mets tout dans une seule partition vu que c’est du virtuel et j’applique les changements :

Partitionnement du disque Linux (2)
Partitionnement du disque Linux (3)
Partitionnement du disque Linux (4)

Patientez, ça s’installe ! Indiquez ensuite que vous ne voulez pas analyser d’autres CD d’installation. Choisissez un miroir en France de préférence pour les mises à jour. Personnellement, je ne souhaite pas participer à l’étude statistique des paquets et je me limite mon installation au serveur SSH et les utilitaires usuels du système. Au moins je n’installe que ce que j’ai besoin !

Installez ensuite Grub sur le secteur d’amorçage en indiquant que c’est sur le disque virtual /dev/vda :

Installation de Grub

Comme dirait mon fils, fini !

Fini !

Vous devriez voir votre VM redémarrer et arriver à sa fenêtre de login.

Je préfère passer par Bitvise SSH ensuite pour faire les copier-coller plus facilement. Même principe que dans l’installation de Proxmox pour Bitvise ou votre client SSH. Indiquez l’IP de cette VM (celle que vous avez fixée dans le serveur DHCP) et l’utilisateur (pas le root !).

Et on est parti pour l’installation de base avant d’attaquer celle propre à Apache. On se met en root pour ajouter son utilisateur en tant que super utilisateur (sudo), on met à jour, on installe des paquets, on met un joli shell …

su –
apt-get install -y sudo htop vim fail2ban net-tools dos2unix cifs-utils curl nfs-common ntp
apt-get update -y && apt-get upgrade -y && apt-get dist-upgrade -y
rm -rf /home/boss/.bashrc
wget https://jeedom-facile.fr/wp-content/uploads/2020/04/bashrc.txt -O /home/boss/.bashrc
dos2unix /home/boss/.bashrc
adduser boss sudo
visudo

Visudo ouvre la fenêtre pour attribuer les droits à notre utilisateur.
Personnellement, je décommente le groupe sudo et j’ajoute mon utilisateur comme super-utilisateur (ici user) :
sudo ALL=(ALL:ALL) ALL
user ALL=(ALL:ALL) ALL

Ensuite quelques petits trucs au cas où.  La configuration NTP (synchronisation de l’horloge et date) pour commencer :

nano /etc/ntp.conf

J’ajoute 4 serveurs pour être sûr que ça fonctionne correctement :
server ntp.ubuntu.com prefer
server ntp2.jussieu.fr
server 0.fr.pool.ntp.org
server 0.europe.pool.ntp.org

Et je relance le service, reconfigure en choisissant bien Europe/Paris pour le fuseau horaire.

/etc/init.d/ntp restart
dpkg-reconfigure tzdata

On choisit Europe/Paris

Apache n’ayant pas besoin d’accès à des répertoires partagés sur mon réseau, il faudra attendre les explications de la VM Jeedom pour cette partie.

Voilà cette partie est la partie générique où je vous renverrai pour TOUTES les machines virtuelles sans exception que nous allons construire.

Attaquons Apache.

Notre serveur Apache !

Maintenant que notre utilisateur a les droits super-utilisateur, vous pouvez quitter le niveau root par :

exit

Oui c’est bête !

Puis on installe Apache avec la commande apt-get précédée de sudo (pour indiquer super-utilisateur fait) :

sudo apt install apache2 

La commande magique !

A ce stade, sur votre réseau local, vous ouvrez votre navigateur Web sur l’adresse http://ip-du-serveur-apache, vous devez arriver à :

Apache est donc bien installé !

Maintenant, nous allons rediriger tout le trafic entrant sur votre réseau (côté WAN – internet) sur le port 80 et 443 de cette machine. Aucune crainte, le 80 c’est le “clair”. Le 443 c’est le SSL, le chiffré. Nous configurerons Apache pour forcer à passer en SSL.

Rendez-vous dans l’interface de votre routeur, ici un Asus : Réseau étendu/Redirection de ports et ajoutez deux règles :

  • HTTP@APACHE : 80 entrant (côté internet, WAN) vers 80 à destination de l’IP de votre serveur Apache (côté réseau local, LAN),
  • HTTPS@APACHE : 443 entrant (côté internet, WAN) vers 443 à destination de l’IP de votre serveur Apache (côté réseau local, LAN)
Ajout de redirection de ports – on clique sur Ajouter et Appliquer

Prenez votre téléphone portable, en mode données mobiles et tapez www.votredomaine.ovh (vous vous rappelez mamaisoncherie.ovh) dans votre navigateur… magie !  Vous arrivez sur la page du serveur Apache.

A ce stade, si vous faites de même avec vos sous-domaines, vous arriverez sur la page du serveur Apache et ce n’est pas ce que vous voudriez.

Dans l’ordre…

Ajoutons du SSL ou l’HTTPS

Cette partie évoluera très certainement car on peut augmenter la qualité du chiffrement.

Démarrons et ajoutons à la liste des repository (c’est quoi Monsieur ?) ce qui nous permettra d’ajouter tout cela :

sudo nano /etc/apt/sources.list

Ajoutez cette ligne :
deb http://ftp.debian.org/debian stretch-backports main 

Puis mettez à jour et installez ce qui est nécessaire pour installer votre certificat :

sudo apt update
sudo apt install python-certbot-apache -t stretch-backports

Tada…

De cette manière, vous n’avez pas besoin de déployer des certificats SSL sur chaque machine, celle d’Apache se charge de sécuriser vos communications.

Listons les sous-domaines que vous souhaitez sécuriser et veillez à les avoir déclarés dans le manager d’OVH !

  • jeedom,
  • routeur,
  • nas,
  • proxmox, etc

C’est vous qui voyez ! Et tapez la ligne magique :

sudo certbot –apache -d www.mondomaine.ovh -d mondomaine.ovh -d jeedom.mondomaine.ovh -d routeur.mondomaine.ovh -d qnap.mondomaine.ovh -d proxmox.mondomaine.ovh

Attention c’est un double tiret “- – apache” (sans l’espace ici)
Remplacez mondomaine par le votre, l’extension aussi !
Ajoutez aussi de sous-domaine que nécessaire.
Configurez votre email, si vous souhaitez être loggué et la redirection du trafic (choix 2).

Vous pouvez en ajouter ultérieurement par la commande expand :

certbot –expand -d existing.com,example.com,newdomain.com

Pour en ajouter des futurs ! (double tiret aussi !)

Activons cela côté Apache :

sudo a2enmod ssl
sudo a2enmod proxy proxy_http

Encore faut-il l’activer !

Vous pouvez tester votre https (son certificat) et il y a mieux que le A !

https://www.ssllabs.com/ssltest/analyze.html?d=www.mondomaine.ovh

https://openweb.eu.org/articles/https-de-ssl-a-tls-1-3
Un peu de lecture sur internet et vous comprendrez qu’on peut faire encore mieux !
Bon c’est déjà mieux que du HTTP en clair 

Ajoutons un renouvellement quand le certificat expire :

sudo crontab -e

Choisissez Nano puis ajoutez en bas du fichier la ligne suivante qui renouvelle le certificat si besoin tous les jours à 6h30 puis redémarre Apache
30 6 * * * certbot renew && /etc/init.d/apache2 restart

Désactivons les sites de base fournis par Apache :

cd /etc/apache2/sites-available

sudo a2dissite 000-default.conf

sudo a2dissite 000-default-le-ssl.conf

Et…

Configurons les sous-domaines

Rappelez-vous ! L’objectif c’est d’accéder à des services clés sans avoir à se souvenir d’une IP fastidieuse et en sécurité. Je prends le cas ici de mon routeur par exemple.

Il faut deux fichiers de configuration :

  • le premier pour renvoyer le trafic HTTP vers HTTPS quand routeur.mondomaine.ovh est destiné à mon routeur mais je souhaite qu’il passe par du chiffrement – nommons le routeur.conf,
  • le second pour renvoyer le trafic vers la bonne IP de notre réseau LAN après être passé en chiffré – c’est-à-dire celle du routeur ! Nommons le routeur-ssl.conf.

cd /etc/apache2/sites-available

sudo nano /etc/apache2/sites-available/routeur.conf

On édite le premier fichier.
Remplacez pour les fois suivantes :
routeur par le sous-domaine que vous souhaitez mettre en place,
– l’IP de destination ici 192.168.2.1 par celle de votre machine : jeedom, nas, etc,
– le nom du log où seront stockés les erreurs et les accès.
<VirtualHost *:80>
    ProxyPreserveHost On
    ServerName routeur.mondomaine.ovh

    ProxyRequests     Off
    ProxyPreserveHost On
    ProxyPass  / http://192.168.2.1 keepalive=On retry=5
    ProxyPassReverse / https://192.168.2.1

   ErrorLog /var/log/apache2/routeur_error.log
   CustomLog /var/log/apache2/routeur_access.log combined

   RewriteEngine on
   RewriteCond %{SERVER_NAME} =routeur.domaine.ovh
   RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

</VirtualHost>

cd /etc/apache2/sites-available

sudo nano /etc/apache2/sites-available/routeur-ssl.conf

On édite le second fichier. Attention aux / après l’IP !
Remplacez pour les fois suivantes :
routeur par le sous-domaine que vous souhaitez mettre en place,
– l’IP de destination ici 192.168.2.1 par celle de votre machine : jeedom, nas, etc
– n’oubliez pas de mettre le bon lien pour la clé de votre certificat – vous pouvez vérifier en faisant un cd /etc/letsencrypt/live/ puis un ls pour voir le nom du répertoire et ainsi de suite…
– Attention il n’y a pas d’espace au niveau de la réécriture de l’adresse après l’égal =sousdomaine…
– Sachez-le vous pouvez ajouter un port de destination si par exemple l’interface de votre NAS ou de votre routeur n’est pas 80 mais 8080 ou autre chose avec l’IP:port
– vous pouvez remplacer les adresses IP par des noms DNS (voir l’article PIHOLE
<IfModule mod_ssl.c>
<VirtualHost *:443>

   ProxyPreserveHost On
   ServerName routeur.mondomaine.ovh

   ProxyRequests     Off
   ProxyPreserveHost On
   ProxyPass  / http://192.168.2.1/ keepalive=On retry=5
   ProxyPassReverse / http://192.168.2.1/

   ErrorLog /var/log/apache2/routeur_error.log
   CustomLog /var/log/apache2/routeur_access.log combined

   Include /etc/letsencrypt/options-ssl-apache.conf
   RewriteEngine on
   SSLCertificateFile /etc/letsencrypt/live/www.mondomaine.ovh/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/www.mondomaine.ovh/privkey.pem
   SSLEngine on

<IfModule mod_headers.c>
        <FilesMatch "\.(css|js|png|jpeg|jpg|ttf|woff)$">
                Header set Cache-Control "max-age=7200"
        </FilesMatch>
        <FilesMatch ".*(getResources.php)">
                Header set Cache-Control "max-age=7200"
        </FilesMatch>
        <FilesMatch ".*(getJS.php)">
                Header set Cache-Control "max-age=7200"
        </FilesMatch>
</IfModule>

</VirtualHost>
</IfModule>

A chaque fois, on sauve, on quitte.

Activez vos sites par :

cd /etc/apache2/sites-available

sudo a2ensite routeur.conf

sudo a2ensite routeur-ssl.conf

Un message doit vous confirmer que c’est OK = ENABLED

Et … on relance et on vérifie !

sudo systemctl reload apache2
sudo systemctl status apache2

Vous avez l’habitude !

Essayons maintenant !

Prenez votre téléphone portable, en connexion mobile puis ouvrez votre page :

https://routeur.domaine.ovh

Par exemple jeedom, routeur … bref celle que vous avez mis en place !

Dans le cas particulier de Proxmox, je vous invite à lire ceci :

https://forum.proxmox.com/threads/proxmox-ve-5-2-1-through-apache-2-4-25-proxy.44408/

Je vous donne le texte à mettre dans votre fichier proxmox – proxmox-ssl.conf pour vous simplifier la vie ; l’ordre des commandes à réaliser reste le même…

<VirtualHost *:80>

        ProxyPreserveHost On
        ServerName proxmox.votredomaine.ovh

        ProxyRequests     Off
        ProxyPreserveHost On
        ProxyPass  / http://IPproxmox keepalive=On retry=5
        ProxyPassReverse / https://IPproxmox

       ErrorLog /var/log/apache2/proxmox_error.log
       CustomLog /var/log/apache2/proxmox_access.log combined

       RewriteEngine on
       RewriteCond %{SERVER_NAME} =proxmox.votredomaine.ovh
       RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

</VirtualHost>
<VirtualHost *:443>
    ServerName proxmox.votredomaine.ovh

    ErrorLog /var/log/apache2/proxmox_error.log
    CustomLog /var/log/apache2/proxmox_access.log combined

    UseCanonicalPhysicalPort Off
    UseCanonicalName         Off
    DocumentRoot             /var/www/html/

    SSLEngine on
        Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/www.votredomaine.ovh/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.votredomaine.ovh/privkey.pem

    ProxyRequests Off
    ProxyPreserveHost On

    #SSL Connect
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    # HSTS (mod_headers is required) (15768000 seconds = 6 months)
    #Header always set Strict-Transport-Security "max-age=15768000"

    # Encoded slashes need to be allowed
    AllowEncodedSlashes     NoDecode

    RewriteEngine on
    RewriteCond %{HTTP:Connection} Upgrade [NC]
    RewriteCond %{HTTP:Upgrade} websocket [NC]
    RewriteRule /(.*) wss://IPproxmox:8006/$1  [P,L]

    SSLProxyEngine   on
    ProxyRequests    off

    #block Proxy for letsencrypt verification!
    ProxyPass        /.wellknown !

    ProxyPass        / https://IPpromox:8006/ flushpackets=On connectiontimeout=300 timeout=300
    ProxyPassReverse / https://IPproxmox:8006/
    ProxyTimeout     600

</VirtualHost>

Voilà cette partie sera à faire à chaque service que vous voudrez rendre visible de l’extérieur sans passer par le VPN… à vous de jouer !

Une fois que votre installation est stable, arrêtez votre machine virtuelle et réalisez une sauvegarde de cette installation au cas où sur une machine physiquement différente, ici mon NAS. Vous aurez toujours une base propre.

Sauvegarde de la machine virtuelle

Pour surveiller si Apache est OK et que le serveur est pleinement opérationnel, si vous avez déjà lu l’article sur la surveillance de votre réseau, ne faites pas un simple ping mais surveiller le port HTTP !

Surveillance d’Apache – port TCP HTTP

Nous avons mis en place notre VPN pour sécuriser nos accès distant sur le réseau local (ici), puis rendu accessible quelques services tels que Jeedom, votre NAS, votre routeur … le tout en SSL ! Vous avez aussi ici les bases d’une installation d’une machine virtuelle que nous allons utiliser pour toutes les machines virtuelles à réaliser.

La conclusion de cet article !

On se trouve pour un article court mais au combien important… accéder à Proxmox rapidement en cas de problème. Quelque chose me dit que vous allez revenir souvent sur cet article !

Si vous avez aimé cet article, faites le savoir, partagez-le ! Et n’hésitez pas à me supporter 🙂

Merci à vous !

One thought on “Machine Virtuelle APACHE

  1. Salut Benjamin,

    Je viens d’essayer ton tuto pour l’installation d’Apache. J’ai 1 remarque et 1 question :
    – Remarque : La commande “sudo certbot –apache -d http://www.mondomaine.ovh -d mondomaine.ovh -d jeedom.mondomaine.ovh -d routeur.mondomaine.ovh -d qnap.mondomaine.ovh -d proxmox.mondomaine.ovh” ne fonctionne pas chez moi, pour la faire fonctionner, il a juste fallu que j’enlève “-apache” à la ligne de commande.
    – Question : Pourrais tu me montrer tes fichiers de config pour proxmox?, j’ai essayé de les configurer mais sans succès et je me dis que je dois passer devant quelque chose que je ne vois pas. Quand j’essaye d’attaquer proxmox j’ai une erreur 500 et lorsque j’essaye d’attaquer jeedom une erreur 502. snif
    Merci d’avance

      1. Merci de ta réponse pour le tiret, j’ai essayé et j’ai eu la même erreur. Ce qui a fonctionné, était de mettre la ligne de commande sans le -apache.
        Par contre j’ai toujours mes pbs d’accès aux machines, peux tu nous montrer l’exemple de proxmox avec IP:port, car là je ne sais plus où regarder (et linux, je n’y connais rien lol)
        Pour le geste, c’est déja fait 😉

        Merci

  2. Merci alors ! J’avoue que je n’ai pas le temps de suivre tous les sujets, je me consacre beaucoup à l’écriture. Je te confirme, bien vu !

    Il me faut un peu plus d’informations pour t’aider ; je pense que tu te mélanges les pinceaux. Passe par le formulaire de contact ou [email protected]

    Cette ligne de commande est à faire dans ta VM Apache, pas celle de Proxmox. Il te faut avoir ouvert le port 80 et 443 et les rediriger sur ta VM Apache.

    Pour accéder à une console de machine virtuelle :
    – soit tu lances ton client Bitvisse SSH sur le port 22, l’adresse IP de la machine virtuelle que tu veux adresser et le login (perso, je ne stocke pas le mot de passe) :
    – soit tu cliques sur Console dans ton IHM proxmox après avoir sélectionné ta VM.

    Deux copies d’écran pour exemple :
    cas 1 :
    https://i.imgur.com/wWnFCSo.png
    cas 2:
    https://i.imgur.com/mTPc87c.png

  3. Bonjour,

    Idem pour moi, n’y arrivant pas hier avec le -apache, je l’ai supprimé et j’ai pu continuer mon installation, par contre une fois tout finit j’ai une erreur lorsque j’essaie de joindre mes machines, genre pour jeedom il ne me met pas le ” / ” et donc je me retrouve dans l’a barre d’adresse avec : http://jeedom.monsite.ovh/index.php?v=d ce qui est logique mais la page me donne :

    ” Proxy Error

    The proxy server received an invalid response from an upstream server.
    The proxy server could not handle the request GET /index.php.

    Reason: DNS lookup failure for: 192.168.0.15index.php

    Apache/2.4.25 (Debian) Server at jeedom.monsite.ovh Port 80 ”

    Si je pige bien, il essai d’aller sur la page de mon réseau 192.168.0.15index.php, forcément ça ne peut pas marcher…
    J’ai du zapper un truc… A moins que ce soit le fait de ne pas avoir mis le –apache ???

    Par avance merci !!! Et encore merci pour ces super tutos !!!

      1. Non, tu n’as pas le même problème ; lui c’était le certificat HTTPS.
        Effectivement, il y a une coquille dans le .conf du SSL il manque un / à la fin de l’IP (puisque le script écrit l’IP/index.php par exemple dans ta copie d’écran). J’ai modifié le code pour le SSL, il manque bien le / après chaque IP, bien vu. D’ailleurs, je me rends compte que c’est WordPress qui me les a virés lors du copier-coller…

  4. autant pour moi cela fonctionne bien avec les – – apache
    je vais refaire entièrement la procédure pour voir si mes pbs d’accès en viennent pas de là.
    Merci encore

    Zak

  5. Hello, petite question, j’obtiens cette erreur sur le certbot . est ce du au fait que je viens de créer dcjona.ovh ou bien est ce à cause d’autre chose? peut etre un délai avant de lancer le ssl etc?

    IMPORTANT NOTES:
    – The following errors were reported by the server:

    Domain: dcjona.ovh
    Type: unauthorized
    Detail: Invalid response from
    http://dcjona.ovh/.well-known/acme-challenge/17ZbfGBr3SevQzXdUJiayFLAiAO2ReiC0TJnAgc-1h0:
    “\n\nFélicitations ! Votre domaine a bien été créé chez
    OVH !</"

    Domain: http://www.dcjona.ovh
    Type: unauthorized
    Detail: Invalid response from
    http://www.dcjona.ovh/.well-known/acme-challenge/AGqRF5oFaK50UsBi8iwiEJAuqKL2uH_i7w1MkwFSLbw:
    "\n\nFélicitations ! Votre domaine a bien été créé chez
    OVH !</"

    To fix these errors, please make sure that your domain name was
    entered correctly and the DNS A/AAAA record(s) for that domain
    contain(s) the right IP address.
    dcjona@Apache:/$

    1. Tu devrais éviter de mettre ton domaine en direct quand même 😉
      Ton erreur est assez clair pour certbot, pour lui les domaines que tu as mis ne sont pas déclarés dans ton DNS de OVH.
      Et oui car www pointe visiblement sur la page “Bravo vous avez …” et non sur ton IP de la maison.
      Donc dans ta commande certbot ne met QUE les sous-domaines que tu as besoin : jeedom.dcjona.ovh par exemple.
      Tu pourras toujours en ajouter avec la commande expand.

  6. Salut benj

    Apres pas mal de galeré car je ne maitrise rien du tout dans le réseau j’ai réussi à tout configuré 🙂
    j’ai mon domaine qui me redirige sur ma vm apache et mon sous-domaine jeedom vers mon jeedom en https:443
    Merci j’aurai jamais su installé tout cela lol

    J’ai essayé d’installer telegram mais sa ne fonctionne pas…
    j’ai bien cree mon bot et dans jeedom tout est vert (conf réseau et certif https)
    j’ai lu dans le forum c’est souvent des pb réseau du coup je me demande si y’a un truc particulier à faire avec l’installation comme tu précise?
    merci d’avance

    Marmoul

  7. encore une question mais si je veux accede depuis mon jeedom.nomdedomaine.ovh depuis le réseau local j’ai cette erreur:
    Proxy Error
    The proxy server received an invalid response from an upstream server.
    The proxy server could not handle the request GET /index.php.

    Reason: DNS lookup failure for: 192.168.1.109index.php

    merci

  8. Super tuto, mais je souffre quand il faut ajouter des nouveaux vhosts pour des nouveaux services…

    j’ai voulu ajouter mon serveur JPI… j’ai créé les vhosts en 80 & 443… mais rien à faire je retombe à chaque fois sur mon jeedom.domaine alors que j’ai bien recree la direction vers mon apache…

  9. Bonjour Benjamin,
    Merci pour tous ces tutos très bien écrits.
    J’ai une configuration semblable à la tienne, sauf un PfSense au lieu de l’Asus.
    J’ai donc installé le serveur Apache et tous mes serveurs sont bien accessibles par l’extérieur.
    J’ai également installé Pi-Hole, qui fonctionne également très bien.
    Le seul souci rencontré est le suivant :
    Lorsque je tape l’adresse en local du serveur Apache (192.168.5.34), ça me renvoie vers la page d’authentification du routeur (192.168.5.1) …
    C’est très gênant car je voulais installer Webmin sur ce serveur.
    Aurais-tu une idée sur le problème ?
    Peut-être est-ce dû à “Désactivons les sites de base fournis par Apache :” ?
    Merci par avance pour ta réponse et passe de bonnes fêtes.

  10. Merci pour cette réponse très rapide.
    Je n’ai pas fait de fichier de conf pour le serveur Apache ; je n’y accède pas de l’extérieur.
    Il faut que j’en fasse un ?

  11. Tout d’abord je vous souhaite une bonne année.
    Ensuite, ça me “rassure” un peu de voir que ce n’est pas un problème dans la config de mon routeur.
    Ne serait-ce pas lié au serveur Pi-hole ? Puisque sur votre message d’erreur, il apparaît une erreur de DNS.
    Si l’un de vos lecteurs n’avait installé que le serveur Apache et pas le serveur Pi-Hole, et vous fasse un retour, on pourrait avoir une piste.

  12. Bonsoir, et meilleurs voeux aussi.
    Si je désactive la VM Pihole, je bascule sur mon DNS secondaire et là je n’ai aucun souci de redirection. Donc oui c’est pihole.
    A voir si quelqu’un a une idée.

    1. Bonjour,

      Quel intérêt ? Sauf si vous exposez en SSH votre machine en question, moi je n’ai d’ouvert que le 80 et le 443 et je force une réécriture en HTTPS.
      Le firewall est déjà inclus sur la VM, vous pouvez vérifier en installant fw (sudo apt-get install fw – pensez à ouvrir le port HTTPS & HTTP en allow et le reste en DENY).
      Mais votre routeur remplit déjà cette fonction.
      Par contre, je dois m’intéresser à augmenter la qualité du HTTPS de A vers A+…

  13. Bonjour Benjamin et meilleurs vœux 🙂
    J’ai une question et sa ne rentre pas totalement dans le titre de l’article mais c’est lié…
    J’ai installé comme dans l’article une vm apache avec des domaines et sous domaines en https via les ports 80 et 443. Tout fonctionne nickel ( ma vm tourne à 1%)
    Sauf que aujourd’hui à 16h impossible d’acceder à mon domaine!!! Je regarde en locale sa fonctionne j’arrive via mon navigateur à allez sur internet donc le pb viens de ma vm apache. Je me connecte sur exsi ( je sais personne n’est parfait mdr) et la ma vm est à 100%!!!!
    J’essaye direct de me co en ssh pour faire un htop mais impossible de me co ma vm est bloqué… du coup pas le choix reboot de la vm et tout refonctionne comme avant…
    Bizarre non? Tu pense que c’est une tentative de hackage ? Quel est là meilleur CAT face à cette situation ? On peux mieux sécuriser ou juste le reboot suffit?
    Désolé si sa répond pas au sujet mais j’aimétais pas tout cassé vu que sa fonctionne nickel grâce à toi 🙂
    Merci d’avance 😀
    Marmoul

  14. Bonjour Benjamin,
    Merci pour ces tutos très clairs.
    J’ai quelques questions :
    Voici ma situation :
    1 BOX / 1 Routeur / 1 Serveur Proxmox /
    1 VM Apache (10.125.1.7)
    1 VM Jeedom (10.125.1.2)
    1 BOX / 1 Routeur / 1 NAS Synology (10.125.1.3)

    J’ai suivi le tuto et si j’ai bien compris, nous avons :
    – créé le certificat pour le domaine et les sous domaine : ok tout apparait bien sur le site SSLLabs
    QUESTION 1 : J’ai rechargé le site ce matin (SSLLabs) et mon certificat est indiqué “valid depuis hier 22H” (heure à laquelle j’ai fait l’installation du script mais pas 6h30 ce matin : cela veut dire que le cron n’a pas fonctionné ? aurais tu des pistes ?
    – Désactivé les fichiers conf :
    * sudo a2dissite 000-default.conf
    * sudo a2dissite 000-default-le-ssl.conf
    – Créé un fichier jeedom.conf et jeedom-ssl.conf qui vont du sous-domaine jeedom.jerome.fr vers l’IP de Jeedom
    – Créé un fichier nas.conf et nas-ssl.conf qui vont du sous-domaine nas.jerome.fr vers l’IP du NAS
    QUESTION 2 : Si je vais directement sur jerome.fr, cela me redirige vers Jeedom : pourquoi ? comment est fait le choix entre jeedom ou le NAS ? Comment désactiver cette redirection ?
    QUESTION 3 : Mon NAS est un NAS Synology : l’accès web ne peut pas se faire par les ports 80 et 443, je dois en indiqué 2 autres. J’ai donc mis, comme indiqué dans ton tuto, le port après les 2 IP dans les 2 confs (80 et 443) relatifs au NAS : par contre j’ai un doute :
    * vhost Port 80 :
    * IP 1 : elle est dans ton exemple en HTTP : j’ai donc indiqué le port HTTP
    * IP 2 : elle est dans ton exemple en HTTPS : j’ai donc indiqué le port HTTPS
    * vhost Port 443 :
    * IP 1 : elle est dans ton exemple en HTTP : j’ai donc indiqué le port HTTP
    * IP 2 : elle est dans ton exemple en HTTP : j’ai donc indiqué le port HTTP
    Mais je ne comprends pas pourquoi il s’agit du port HTTP et non HTTPS ? Est-ce bien ça ?
    L’objectif est-il que l’IP 1 et 2 du vHost Port 443 redirige vers le vHost Port 80 IP1 qui lui même réécrit en vHost IP2 ?
    Dans la situation actuelle, quand je tape nas.jerome.fr, celà me redirige en https://nas.jerome.fr:port2000 mais j’ai un message cette connexion n’est pas sécurisée : cela veut dire que le certificat ne fonctionne pas ? Je ne comprends pas pourquoi.
    As-tu un avis sur mes questions ?
    Merci pour ton aide
    Jérôme

    1. Hello,
      Dans l’ordre :
      Q1 : non le cron vérifie s’il y a besoin de régénérer ton certificat. Si pas besoin, il ne le renouvelle pas.
      Q2 : par défaut ton http part sur du https, c’est voulu. Et qui répond en https sur le domaine. Tu as redirigé ton jerome.fr vers http://www.jerome.fr et surtout vers jeedom.jerome.fr. Veille à faire pointer www et ton jerome.fr dans ovh sur une page 403 par exemple.
      Q3 : tu peux mettre le port que tu veux. Perso, je reste en HTTPS (attention à avoir le bon protocole dans l’écriture du lien) dès que je suis dehors. Tu écris un lien d’origine en HTTP mais de toutes les manières, cela passe dans le flux HTTPS donc crypté. Voir dernier point
      Q4 : je ne comprends pas pourquoi tu appelles un port dans l’adresse. J’appelle le port “clair” de mon NAS et je passe par mon flux HTTPS.
      Attention, aussi, certains NAS ne supportent pas l’utilisation d’un flux HTTPS autre que celui fourni par le fabricant. Il me semble que c’est le cas de Synology. Il t’affichera un certificat invalide car ce n’est pas celui validé pour ton NAS.
      Rajout : tu peux aussi rendre encore plus costaud ton chiffrement HTTPS en le passant de A à A++. Voir le chiffrement par clé etc. J’ai prévu un jour un article sur le sujet mais c’est quand même assez lourd pour les néophytes que nous sommes…

      1. Merci beaucoup pour tes réponses à un néophyte 😉

        Q1 : ok je comprends
        Q3/Q4 : j’ai désactivé l’option Synology qui redigiré automatiquement le flux HTTP vers le HTTPS et du coup, avec nas.jerome.fr, j’arrive bien sur mon NAS avec une adresse certifiée Letsenscrypt
        J’ai essayé sans mettre mes ports (1960/1961 pour HTTP/HTTPS) à l’intérieur des virtual host mais dans ce cas la redirection ne se fait pas : Synology n’autorise pas les ports 80 et 443
        Q2 : la je suis pas sur d’avoir tout saisi
        Dis moi si je me trompe : Au niveau de la VM Apache, il ne me semble pas avoir fait de lien pour dire jerome.fr et http://www.jerome.fr vont vers Jeedom car il n’y a pas de virtualhost pour le domaine http://www.jerome.fr et pour le domaine jerome.fr
        Le problème viendrait donc des DNS configurés chez mon hébergeur ?
        J’avais créé :
        1 A : jerome.fr vers IP fixe
        1 A : http://www.jerome.fr vers IP fixe
        1 CNAME Nom : jeedom.jerome.fr / Value : http://www.jerome.fr
        1 CNAME Nom : nas.jerome.fr / Value : http://www.jerome.fr
        1 CNAME Nom : proxmox.jerome.fr / Value : http://www.jerome.fr
        Mais j’étais pas sûr de moi. Je viens de tout supprimer et de créer
        1 A : jeedom.jerome.fr vers IP fixe
        1 A : nas.jerome.fr vers IP fixe
        pour tester

          1. Oui c’est vrai,
            J’avais un doute en lisant ton article s’il en fallait pour ceux là également.
            Mais bon, avec juste les A, je n’ai comme ça pas besoin d’héberger une page 403 ou autre (je n’ai pas de site web en dehors de mes utilitaires.
            Merci encore pour tous tes conseils,

  15. Salut Benjamin,

    Un énorme merci pour tes explications très détaillées !
    Indispensable pour débuter dans le monde de la virtualisation !

    Ca m’a permis d’installer proxmox, jeedom, les sous-domaines, fail2ban, etc.. Parfait !
    Je conserve mon piHole sur un Pi indépendant pour l’instant.

    Mais je bloque actuellement sur un problème :
    Je n’ai plus accès à la console de mes VMs, je tombe en timeout.

    J’étais en train d’ajouter une nouvelle VM pour installer un 2ème Jeedom (Beta) mais impossible de continuer l’installation de la Debian car aucun accès possible à la console (logs : Erreur : connexion timeout).
    Je me suis aperçu ensuite qu’aucune VM n’avait accès à sa console.

    Débutant sous Proxmox, je sèche..
    Merci encore pour ce blog.

  16. Hello,

    Tu peux oublier mon commentaire précédent (pas encore publié) :
    Je me connectais depuis mon sous domaine ovh alors qu’il fallait utiliser mon ip locale.

    Encore merci pour ton blog.

  17. Bonjour Benjamin,

    Merci pour ce superbe article. Grâce à toi, j’ai peux accéder à mon NAS depuis l’extérieur avec un nom simple et sans devoir retenir le port qui va bien. Et nickel pour Jeedom également. Par contre contrairement à toi, j’utilise ESXI et je n’arrive pas à y accéder depuis le sous domaine, il me sort une erreur sur le nombre de redirection trop importante, tu aurais une idée ?
    Sinon comment fait tu pour accéder au élément depuis ton réseau local ? J’ai essayé avec des slash ou pas à la fin et aucune des mes URL ne fonctionne en local…

    Merci d’avance et bonne soirée.

    1. De rien. Comme tu as pu le voir pour proxmox il y a deux fichiers de configuration différents de ceux utilisés habituellement. A mon avis pour exsi même combat. Google est ton ami, j’ai trouvé comme ça pour proxmox après un premier écueil.

  18. Bonjour,
    Je viens de recevoir mon HP Proliant Gen8 (d’occasion) sur lequel je me suis empressés d’installer Proxmox.
    En grande partie grâce a ce site (MERCI).
    Donc nouveau sous Proxmox je n’en maîtrise pas encore toutes les subtilités, notamment la différence entre Clone et Template.
    Je lis sur cette page : “Installation de notre machine virtuelle (partie générique). Cette partie sera utilisée pour toutes les machines virtuelles que nous allons installer sous Proxmox.”
    Donc pourquoi recommencer à chaque fois cette partie pour toutes les VM ? Ne serait’il pas plus simple de faire un Clone ou un Template justement ?
    Si oui pourrions nous avoir une explication (et si le temps, un tuto serait l’idéal 😉 )
    Si non pourquoi ? Quels raisons / contraintes ?

    Encore un grand merci pour ce blog qui m’aide énormément.

    @+GargouilleBL

    1. Hello,

      Judicieuse remarque. D’une car je n’ai pas forcément le temps de rédiger des tutos pour tout :p. De deux, car perso, j’ai mis du temps à mettre au point mes VM et ce que vous avez ici n’est que la finalité de mes essais. Donc oui, on peut cloner. Template de mémoire, c’est plutôt du LxC (plutôt équivalent docker). Donc pas possible si tu as des échanges avec des périphériques USB. Ensuite, je préfère même sur du système docker, faire une VM dédiée sous Linux et ajouter docker dessus que de créer des templates des différents services. Je ne sais pas si je suis clair. Ensuite, cloner tu peux. Mais sincèrement, c’est pas les 5 lignes de code pour le début de chaque VM qui est très long à faire… enfin, ce n’est que mon avis. Mais dans l’absolu, oui pour cloner, tu peux. Après, il faut voir la partie génération adresse MAC, tuning de l’OS au regard des ressources matérielles, mémoire etc. Au final, je préfère une installation propre alignée sur mes ressources.

  19. Bonjour, je tenais a te remercier pour tes tutos, ils sont fort utiles.
    J’ai juste un petit soucis concernant proxmox. Le https fonctionne nickel par contre je ne peux pas accéder a la console noVNC, Aurais tu une petite idée

    1. Bonsoir. De rien.
      A distance, c’est normal. Il faudrait mettre en place un routage du flux VNC par le HTTPS qui est désactivé en natif sur proxmox.
      Perso, je passe par mon VPN quand j’ai besoin d’y accéder à distance et d’ailleurs je préfère y accéder par bitvise SSH…
      La manipulation doit exister et impose de modifier vos vhosts.
      Bonne soirée !

  20. Bonsoir Benjamin,
    Tout d’abord merci pour l’ensemble de tes travaux, tu réalises un boulot exceptionnel 🙂
    Je viens de suivre ton tuto, mais avant de te poser ma question je te présente mon infra :
    BOX — Routeur (pfsense) — ESXi — VMs
    une de ces VMs est la VM apache
    une autre est pihole
    une autre est jeedom
    a ceci j’ai 2 NAS synology et qnap.
    Mon but étant d’accéder depuis internet par le biais du serveur mandataire (vm apache) à mon syno, qnap, jeedom, pfsense et pihole.
    Pihole n’étant pas en https, je me pencherai sur la question plus tard.
    jeedom et pfsense, eux, le sont, au même titre que les 2 NAS.
    J’ai donc suivi à la lettre ton tutoriel ici présent, sans rencontrer le moindre soucis, du moins à priori.
    Toutefois lorsque je tente d’accéder à n’importe lequel de mes sous domaines :
    pfsense.mondomaine.org
    jeedom.mondomaine.org
    mon navigateur m’indique systématiquement ce message d’erreur :
    ERR_TOO_MANY_REDIRECTS

    Il se trouve que j’ai un collègue qui a tenté quelques jours plus tôt que moi ce même tutoriel chez lui et il rencontre exactement la même problématique.

    Je viens de passer ma soirée à bidouiller et chercher sur google mais je ne trouve rien de concluant.

    Peux-tu m’aiguiller s’il te plait ?
    Cordialement,
    Régis

    1. Bonsoir,

      Avez-vous activé les logs côté Apache ?
      Je serai vous j’irai voir (ça se passe dans /var/log et cherchez soit l’apache ou dans le syslog en isolant les trames d’apache).
      Bon courage car là j’avoue que vous sortez des sentiers que j’ai l’habitude.
      Je ne suis pas assez pro de ce côté… et j’ai d’ailleurs beaucoup galéré pour arriver à quelquechose de probant dans cet article.

      1. Bonjour Benjamin,

        J’avance !
        A force de bidouilles, j’ai constaté ceci :
        Si on veut effectuer une modif sur un fichier de conf d’un des vhosts, il est nettement préférable avant d’éditer le fichier de désactiver au préalable le vhost avec la commande a2dissite.
        Moi je désactive systématiquement les 2 fichiers de conf du même site pour être sûr de mon coup, j’écris la modif puis le réactive les 2 fichiers avant de faire un reload d’apache2.
        Ceci pour information, des fois que cela puisse aider la communauté.

        Pour en revenir à mon soucis, je ne rencontre plus ce message ERR_TOO_MANY_REDIRECTS, et la redirection vers mon serveur jeedom fonctionne correctement :
        http => https d’une part, et redirection vers l’ip du jeedom d’autre part.

        Par contre, si je fais l’équivalent de la conf de mes 2 fichiers jeedom vers mes autres cibles (pihole, qnap, syno, pfsense), ca redirige vers …..jeedom !
        inutile de préciser que l’ip et le servername sont modifiés…..

        Je continue de creuser et si je trouve la solution je posterai les conf de mes fichiers pour faire avancer la science lol 🙂

        En tout cas merci pour ta réponse, je vais aller chercher dans les logs d’apache si j’ai un embryon de réponse

        Cordialement,
        Régis

        1. bonjour,
          maintenant tout est fonctionnel :p
          mes pb pour la plupart venaient du fait que sur l’ensemble des machines pointées par cette redirection, (nas, routeur, point d’acces wifi, etc…) ils gèrent en interne leur propre redirection http vers https.
          une fois celle-ci désactivée, le ERR_TOO_MANY_REDIRECTS n’apparait plus et ca fonctionne parfaitement

  21. Bonjour, je suis novice dans cette partie et j’ai suivi tout le tuto mais je rencontre un problème.
    Je précise avant que j’avais un RPI et accessible en SSL avec let’s enscrypt.

    J’ai changé de matériel et donc je fais la même config que vous. Cependant, avant la partie “Ajoutons du SSL…..” de votre tuto, je rencontre un problème. Je n’accède pas à Apache à distance via mon adresse “www.mondomaine.ovh”.

    Je ne comprends pas, pourquoi j’ai tout vérifié mais il doit me manquer un truc…
    Apache est bien accessible en local via 192.168.1.56 –> config ok
    Sur mon routeur la config suivante est en place dans port mapping:
    – TCP-UDP 5551 5551 5551 192.168.1.56
    – TCP 5552 5552 5552 192.168.1.56
    – UDP 5553 5553 5553 192.168.1.56

    Sur OVH j’ai bien:
    – Dynhost : jeedom.mondomaine.ovh la cible fonctionne bien car elle change chaque fois que mon routeur redémarre et c’était la même que sur mon RPI.
    – Zone DNS: http://www.mondomaine.ovh, jeedom.mondomaine.ovh etc en CNAME sur jeedom.mondomaine.ovh

    Résultat avec la 4G: la connexion au serveur est impossible. Avec PC j’avais parfois une 502 bad gateway.

    Ce que je ne comprends pas c’est comment on fait le lien avec Apache ? J’ai oublié quelque chose ?

    Merci d’avance pour votre réponse.

  22. Bonjour,
    En SSH sur mon serveur Apache j’ai installé let’s enscrypt et j’ai lancé cette commande:
    sudo /opt/letsencrypt/letsencrypt-auto revoke –cert-path /etc/letsencrypt/live/mondomaine.ovh/fullchain.perm

    Une autre manipulation est à faire ? Ou ce n’est pas la bonne méthode ?

    1. C’est une excellente idée ! Après, j’avoue qu’une fois que tout est mis en place, on n’y touche plus. Pour ma part, aucune modification sauf les updates depuis bientôt 2 ans.

      1. ok merci.
        En fait ça peut être une bonne solution pour les débutants total en linux, comme moi ^^ qui le font pour la première fois.

        Si je peux me permettre, je me suis planté dans les commandes ou “boss” apparaît, car je faisais un copier coller comme un con sans mettre mon vrai login..
        Un rappel à ce niveau pour les gros noobs serait utile 🙂

  23. Salut,
    MErci pour le tuto. Par contre je ne comprends pas un truc..

    J’ai un serveur proxmox sur lequel je veux créer pleins de VM :
    * pi hole
    * jeedom
    * zone minder ou motion eye
    * …
    Certaines devront être accéssibles depuis l’extérieur, d’autres non (sauf en VPN).

    1) Pourquoi je dois installer obligatoirement apache sur toutes les VM ?
    2) pour les VM accéssibles uniquement en local (ou VPN), un certificat SSL sert à quelque chose ?
    3) Je ne comprends pas pourquoi toutes les VM doivent avoir la gestion de tous les sous domaines pour les certificats SSL ?

    Désolé pour les questions de noob.

    Merci

    1. Bonsoir,
      Effectivement, c’est du noob ! Non, faites simple. Une seule VM avec apache et les fichiers de configuration, point. Surtout pas apache partout …
      Non le SSL ne sert justement que pour celles que vous voulez sortir…
      Pour la 3, vous avez la réponse plus haut… vu qu’il n’y a qu’une VM apache à paramétrer !

      1. Désolé, Windows cava, mais Linux et la notion de serveur, c’est vraiment nouveau !

        Donc si je comprends bien on a :

        Serveur physique proxmox avec :
        –> 1 VM Apache
        –> x VMs avec accès externe
        –> x VMs avec accès local ou VPN

        La VM Apache redirigera les clients vers les bonnes VMs externes en fonction du sous-domaine appelé, avec en plus la gestion de leurs certificats SSL pour chacun d’eux.

        Et sans la VM Apache, impossible a faire car ces différentes VMs externes utilisent toutes les port 80 et 443, donc impossible a gérer avec juste un routeur.

        C’est bien ça ?

        1. Bonjour,

          Pourquoi vous vous compliquez autant la tâche ? Je n’ai pas écrit à un seul moment dans l’article qu’il fallait créer plusieurs VM. Je ne dis que de créer une seule VM apache. C’est tout. C’est apache qui gère les connexions entrantes et sortantes en HTTPS, point.

          Ensuite votre routeur renvoie le flux 443/80 sur cette VM et elle fera les redirections, point.

          Le VPN est géré par le routeur, là aussi, pas de VM (je n’ai jamais écrit qu’il fallait une VM pour un VPN…) sauf si vous avez envie d’installer un serveur VPN sur une VM. Mais pour le coup, je ne vois pas l’intérêt étant donné qu’un NAS ou un routeur fait ça en natif.

          Allez courage !

          1. En fait c’est parceque j’ai commencé par le tuto proxmox pour avoir plusieurs VM, et ensuite je suis allé sur le tuto pi hole pour installer ma première VM, et celui-ci m’a amené sur le tuto apache.

            Pour le VPN, ok c’est noté !

            Au final j’ai bien compris, merci !

    1. Je viens de trouver l’erreur, j’ai rien dit :).

      Par contre j’ai tout essayé, mais la livebox refuse catégoriquement de s’afficher, j’ai un proxy error.
      As-tu déjà rencontré ce souci ?

  24. Bonjour Benjamin,

    Merci beaucoup pour tous tes tutos.
    Je t’avoue que je coince sur un problème et non des moindres… Ca fait des heures et je commence à fatiguer 🙁

    J’ai suivi tous les tutos jusqu’au moment de vouloir installer la VM apache.
    Je lance l’ISO “debian-10.3.0-amd64-netinst”
    Lors du choix des langues, j’avais je ne peux me mettre en français même si c’est bien elle que j’ai choisi, mais surtout juste après j’ai le message.

    No Ethernet Card was detected. etc etc etc.

    J’ai beau chercher je ne comprends pas pourquoi il ne me détecte pas ma carte réseau.

    Si tu as une idée je suis preneur.
    Merci par avance.
    Michael

    1. Bon et bien après XXX essais c’est passé, pourtant en faisant toujours la même chose.

      Je me retrouve cependant encore coincé….

      Je suis à cette étape ci.

      su –
      apt-get install -y sudo htop vim fail2ban net-tools dos2unix cifs-utils curl nfs-common ntp
      apt-get update -y && apt-get upgrade -y && apt-get dist-upgrade -y
      rm -rf /home/boss/.bashrc
      wget https://raw.githubusercontent.com/jeedom/core/stable/install/bashrc -O /home/boss/.bashrc
      dos2unix /home/boss/.bashrc
      adduser boss sudo
      visudo

      Et je n’arrive pas à la passer. Voici les résultats sous Putty

      michael@debian-Apache:~$ su –
      Password:
      root@debian-Apache:~# apt-get install -y sudo htop vim fail2ban net-tools dos2unix cifs-utils curl nfs-common ntp
      Reading package lists… Done
      Building dependency tree
      Reading state information… Done
      cifs-utils is already the newest version (2:6.8-2).
      dos2unix is already the newest version (7.4.0-1).
      fail2ban is already the newest version (0.10.2-2.1).
      htop is already the newest version (2.2.0-1+b1).
      net-tools is already the newest version (1.60+git20180626.aebd88e-1).
      nfs-common is already the newest version (1:1.3.4-2.5).
      ntp is already the newest version (1:4.2.8p12+dfsg-4).
      sudo is already the newest version (1.8.27-1+deb10u2).
      vim is already the newest version (2:8.1.0875-5).
      curl is already the newest version (7.64.0-4+deb10u1).
      0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
      root@debian-Apache:~# apt-get update -y && apt-get upgrade -y && apt-get dist-upgrade -y
      Hit:1 http://deb.debian.org/debian buster InRelease
      Hit:2 http://security.debian.org/debian-security buster/updates InRelease
      Hit:3 http://deb.debian.org/debian buster-updates InRelease
      Reading package lists… Done
      Reading package lists… Done
      Building dependency tree
      Reading state information… Done
      Calculating upgrade… Done
      0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
      Reading package lists… Done
      Building dependency tree
      Reading state information… Done
      Calculating upgrade… Done
      0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
      root@debian-Apache:~# rm -rf /home/boss/.bashrc
      root@debian-Apache:~# wget https://raw.githubusercontent.com/jeedom/core/stable/install/bashrc -O /home/boss/.bashrc
      /home/boss/.bashrc: No such file or directory
      root@debian-Apache:~# wget https://raw.githubusercontent.com/jeedom/core/stable/install/bashrc -O
      wget: option requires an argument — ‘O’
      wget: missing URL
      Usage: wget [OPTION]… [URL]…

      Try `wget –help’ for more options.

      Là je sèche….. Et vais me coucher MDR

      Si tu as une idée, merci beaucoup en tout cas
      Michael

  25. Hello,

    Tout marche nickel, par contre c’est normal que l’accès par nom de domaine aux différents site ne fonctionnent pas depuis une IP de mon réseau local, mais pas de souci depuis la 4g ou n’importe quel poste en dehors de chez moi ?

    j’ai un délai d’attente dépassé..

    merci

    1. Depuis Janvier 2020, les serveurs supportant les protocles SSL versions TLS v1.0 et TLSv1.1 passent à B. Il faut donc je suppose désactiver ce support dans apache

      1. Bonjour (déjà :p),
        Oui, on peut désactiver ce support. Néanmoins, sans TLS, il faudrait peut être avoir une alternative ou la bonne configuration à partager.
        https://karthikekblog.com/how-to-disable-enable-ssl-tls-protocols-in-ubentu-apache-linux-server/
        Après pour ma part, je n’ai aucune version à 1.1, mon test de certificat me donne bien 1.2.
        Numéro de série : XXXXXXXXXXXXXXXXXXXXX
        Taille de la clef : 2048 bit
        Compression : NONE
        Protocole : TLSv1.2
        Cipher : XXXXXXXXXXXXXXX

        1. Salut 🙂
          Oui quand je dis désactiver TLS v1. 0 et 1.1 je sous-entends qu’il faut bien entendu garder le TLS v1. 2.
          J’étais dans le même cas que Sylvain il y a quelques semaines (sois-dit en passant, quel super tuto !).
          Et j’ai réussi à transformer ce B en A.
          pour ce faire il a juste été nécessaire de modifier le fichier de conf qui est dans /etc/letsencrypt (car appelé ensuite par tous les virtualHost).

  26. Salut ben,

    Après avoir réinstallé la vm sur proxmox suite à un gros changement de serveur j’ai une question.
    Ma vm apache avec son domaine et ses sous domaine fonctionne bien mais quand je tape mon domaine.ovh je tombe sur la page par défaut de apache.
    J’aimerais bien une page custom ou une interface avec genre 2-3 info et les redirections vers les sous-domaine ou un truc dans le genre.
    Pense tu que c’est possible et surtout secure??
    Merci à toi et bonne soirée

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *