Aller au contenu
StealthRDP
Administration de VPS

Pointer un nom de domaine vers un VPS avec HTTPS gratuit

Faites pointer un nom de domaine vers votre VPS (enregistrements A, ports 80 et 443), puis passez en HTTPS gratuitement avec Let's Encrypt et Certbot.

Publié le

9 min de lecture

Ce guide explique comment pointer un nom de domaine vers votre VPS, pour que les adresses example.com et www.example.com affichent votre site, puis comment activer HTTPS avec un certificat Let's Encrypt gratuit. [1] Il s’adresse à toute personne qui dispose d’un domaine, dont le DNS est géré chez le registrar ou chez Cloudflare, et d’un VPS sous Ubuntu 24.04 LTS avec nginx ou Apache. Remplacez example.com et 203.0.113.10 par votre propre domaine et l’adresse de votre serveur.

Ce qu’il vous faut avant de commencer

Vous avez besoin de quatre choses :

  • Un accès au DNS du domaine, chez le registrar, ou chez Cloudflare si le domaine utilise les serveurs de noms de Cloudflare.
  • Un accès SSH avec les droits sudo, par clé SSH plutôt que par mot de passe root, comme l’explique notre liste de contrôle pour durcir SSH.
  • nginx ou Apache, installé et en service.
  • L’adresse IPv4 publique du serveur, qui figure dans les informations du serveur chez votre hébergeur. Chaque VPS Linux StealthRDP dispose d’une adresse IPv4 dédiée.

IPv6 est facultatif : comme un enregistrement AAAA associe un nom à une adresse IPv6, n’ajoutez d’enregistrements AAAA que si le serveur en possède une. [2] Vous n’avez pas encore choisi de serveur ? Notre guide sur le dimensionnement d’un VPS pour l’hébergement web vous aidera.

Pointer un nom de domaine vers votre VPS avec des enregistrements DNS

Pour pointer un domaine vers votre VPS, créez des enregistrements A qui associent example.com et www.example.com à l’adresse IPv4 du serveur. [2] Faites la modification là où est hébergé le DNS du domaine.

Si le domaine sert déjà à un site en production ou à la messagerie, notez d’abord les enregistrements existants. Ne modifiez que les enregistrements A, AAAA et CNAME de @ et de www, et ne touchez pas au reste, comme les enregistrements MX de la messagerie.

1. Ajouter des enregistrements A pour le domaine racine et www

Un enregistrement A associe un nom à une adresse IPv4 ; dans le champ Nom, @ désigne la racine de la zone (l’apex), c’est-à-dire example.com lui-même. [2]

Type Nom Contenu Statut du proxy (Cloudflare uniquement)
A @ 203.0.113.10 DNS only, pour l’instant
A www 203.0.113.10 DNS only, pour l’instant
AAAA @ et www L’adresse IPv6 du serveur, seulement s’il en a une DNS only, pour l’instant

Supprimez tout autre enregistrement A ou AAAA pour ces noms, par exemple celui d’une page de parking installée par le registrar.

2. Ou faire pointer www avec un enregistrement CNAME

Un enregistrement CNAME associe un nom à un autre nom plutôt qu’à une adresse. [2] Un CNAME sur www qui cible example.com suit l’enregistrement racine : si l’adresse du serveur change, vous n’avez qu’un seul enregistrement à modifier. Utilisez soit l’enregistrement A, soit le CNAME pour www, mais pas les deux.

Chez Cloudflare, laissez les deux enregistrements en DNS only (nuage gris) jusqu’à l’émission du certificat ; la section consacrée à Cloudflare explique pourquoi.

3. Comprendre le TTL avant d’attendre la propagation DNS

Le TTL (time to live, durée de vie) détermine combien de temps les résolveurs DNS gardent une réponse en cache avant de la redemander : une ancienne réponse peut donc persister jusqu’à l’expiration de son TTL. [2] Chez Cloudflare, les enregistrements en mode Proxied ont par défaut un TTL Auto, soit 300 secondes, et les enregistrements en DNS only utilisent la valeur que vous choisissez. [2] Les autres fournisseurs indiquent leur valeur par défaut dans la colonne TTL.

4. Vérifier les enregistrements avec dig ou nslookup

Interrogez un résolveur public, comme Google Public DNS à l’adresse 8.8.8.8, pour les deux noms : utilisez dig sous Linux et macOS, et nslookup sous Windows. [3]

Linux ou macOS
dig -t A example.com @8.8.8.8
dig -t A www.example.com @8.8.8.8
Windows (PowerShell ou Invite de commandes)
nslookup -type=A example.com 8.8.8.8
nslookup -type=A www.example.com 8.8.8.8

Les deux noms doivent renvoyer 203.0.113.10 ; demandez le type AAAA au lieu de A pour vérifier l’IPv6. Si ce n’est pas le cas, consultez les problèmes courants plus bas.

Ouvrir les ports 80 et 443 avec UFW

HTTP utilise normalement le port TCP 80 et HTTPS le port 443, et Certbot a besoin que le port 80 soit joignable depuis le reste d’Internet. [4] Au départ, UFW est désactivé et sa politique par défaut refuse les connexions entrantes ; l’activer peut couper les connexions existantes, comme votre session SSH, et, si vous êtes connecté en SSH, il demande une confirmation. [5]

Autorisez SSH avant d’exécuter sudo ufw enable, sinon vous risquez de perdre l’accès au serveur. Si SSH écoute sur un autre port que le 22, autorisez ce port à la place.

Autoriser SSH, HTTP et HTTPS, puis activer UFW
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status

Pour autoriser un profil d’application plutôt que des numéros de port, utilisez sudo ufw app list, qui affiche les profils présents sur votre serveur, et sudo ufw app info, qui indique les ports que chacun ouvre ; mettez entre guillemets les noms qui contiennent des espaces. [5] Quand IPv6 est activé dans UFW, ce qui est le cas par défaut, chaque règle couvre à la fois IPv4 et IPv6. [5] Si votre hébergeur place un pare-feu en amont du serveur, ouvrez-y aussi ces ports. [4]

Servir example.com avec nginx ou Apache

Configurez example.com dans votre serveur web avant d’ajouter HTTPS, car Certbot s’attend à trouver un site qui répond déjà en HTTP simple. [4]

nginx : un seul bloc server pour les deux noms

Sous Ubuntu, chaque bloc server de nginx se trouve dans /etc/nginx/sites-available et s’active au moyen d’un lien dans /etc/nginx/sites-enabled ; indiquez les deux noms sur la ligne server_name. [6]

/etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;

    root /srv/example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
Créer une page de test, activer le site et recharger nginx
sudo mkdir -p /srv/example.com/html
echo "example.com works" | sudo tee /srv/example.com/html/index.html
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Apache : l’équivalent avec un hôte virtuel

Avec Apache, un hôte virtuel placé dans /etc/apache2/sites-available utilise ServerName pour example.com et ServerAlias pour www.example.com ; partez d’une copie du fichier par défaut, puis activez le site avec a2ensite. [7]

Copier l’hôte virtuel par défaut
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com
</VirtualHost>

Redémarrer Apache affecte tous les sites du serveur. Si d’autres sites sont en production, vérifiez d’abord le nouveau fichier et gardez votre session SSH ouverte.

Créer une page de test, activer le site et redémarrer Apache
sudo mkdir -p /var/www/example.com
echo "example.com works" | sudo tee /var/www/example.com/index.html
sudo a2ensite example.com
sudo systemctl restart apache2.service

Ouvrez http://example.com et http://www.example.com : les deux doivent afficher la page de test.

Activer HTTPS gratuitement avec Let's Encrypt et Certbot

Certbot obtient un certificat auprès de Let's Encrypt et peut configurer nginx ou Apache pour l’utiliser. [4]

1. Installer Certbot sous forme de snap

Le site de Certbot recommande vivement le paquet snap à la plupart des utilisateurs. Celui-ci nécessite snapd ; supprimez d’abord tout paquet Certbot installé avec apt, pour que la commande certbot lance bien le snap. [4]

Installer Certbot sous Ubuntu 24.04
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot

2. Obtenir le certificat et activer HTTPS

Le plugin de votre serveur web obtient le certificat et modifie la configuration pour l’utiliser : HTTPS est activé en une seule étape. [4]

nginx
sudo certbot --nginx
Apache
sudo certbot --apache

Répondez aux questions de Certbot et incluez les deux noms, puisqu’un même certificat peut en couvrir plusieurs. [1] Si vous préférez modifier la configuration vous-même, lancez plutôt sudo certbot certonly --nginx, qui se contente d’obtenir le certificat. [4] Ouvrez ensuite https://example.com et vérifiez la présence du cadenas. [4]

3. Tester le renouvellement automatique

Certbot installe une tâche cron ou un timer systemd qui renouvelle les certificats avant leur expiration : vous n’avez donc pas à le relancer, sauf si votre configuration change. [4] Testez le renouvellement dès maintenant, puis de nouveau après toute modification du DNS, du pare-feu ou de Cloudflare :

Tester le renouvellement et trouver le timer
sudo certbot renew --dry-run
systemctl list-timers

Durée de validité des certificats Let's Encrypt

Par défaut, les certificats Let's Encrypt sont valables 90 jours. [1] À partir du 10 février 2027, les certificats émis ou renouvelés seront valables 64 jours par défaut (les derniers certificats de 90 jours devraient expirer le 11 mai 2027), et Let's Encrypt prévoit une durée par défaut de 45 jours pour 2028. [8] Si vous avez écrit votre propre tâche cron avec un intervalle fixe, Let's Encrypt conseille plutôt de renouveler aux deux tiers environ de la durée de vie du certificat et de rechercher dans vos scripts les valeurs codées en dur, comme 60, 80 ou 83. [8]

Utiliser Full (strict) quand le proxy Cloudflare est activé

Quand le proxy de Cloudflare est activé, réglez le mode de chiffrement SSL/TLS sur Full (strict). Ce mode régit la connexion entre les visiteurs et Cloudflare, ainsi que celle entre Cloudflare et votre serveur. [9]

Mode De Cloudflare à votre serveur Certificat du serveur vérifié
Flexible HTTP simple, non chiffré Non
Full Même protocole que le visiteur Non
Full (strict) Même protocole que le visiteur Oui
Strict (SSL-Only Origin Pull) Toujours HTTPS Oui

Évitez Flexible : le navigateur affiche HTTPS, mais le trafic entre Cloudflare et votre serveur n’est pas chiffré, et Cloudflare lui-même recommande vivement Full ou Full (strict). [9] Ce mode entre aussi en conflit avec la redirection HTTP vers HTTPS qu’une configuration Certbot peut ajouter. [4] Cloudflare interroge votre serveur en HTTP simple, le serveur redirige vers HTTPS, et le navigateur part dans une boucle de redirections. [9] Full (strict) vérifie le certificat du serveur, qui peut provenir d’une autorité de certification publique comme Let's Encrypt. [9]

Si le certificat expire, Cloudflare ne repasse pas la zone de Full (strict) à Full : le renouvellement doit donc continuer de fonctionner. [9] L’ordre le plus simple : d’abord le certificat, ensuite le proxy.

Ne choisissez Full (strict) qu’une fois le certificat installé et le test de renouvellement (dry run) réussi.

  1. Obtenez le certificat pendant que les deux enregistrements sont en DNS only.
  2. Passez les deux enregistrements en Proxied.
  3. Sur la page SSL/TLS Overview, choisissez Full (strict) ; si la zone utilise Automatic SSL/TLS, sélectionnez d’abord Custom. [9]
  4. Relancez sudo certbot renew --dry-run.

Même avec le proxy déjà activé, l’émission du certificat peut fonctionner : en Full et en Full (strict), Cloudflare contacte votre serveur en HTTP quand la requête est en HTTP, si bien que la vérification de Certbot sur le port 80 peut passer. [9] Strict (SSL-Only Origin Pull) se connecte toujours en HTTPS et échoue donc tant que le certificat n’existe pas. [9] Si l’émission échoue, repassez les enregistrements en DNS only, obtenez le certificat, puis réactivez le proxy.

Avec le proxy activé, le serveur continue de répondre sur son adresse IP à quiconque la connaît. Pour combler cette faille, n’autorisez que les adresses IP de Cloudflare sur les ports 80 et 443.

Problèmes courants et solutions

La plupart des échecs viennent du DNS, du pare-feu ou d’un trop grand nombre de tentatives.

Le DNS n’est pas encore à jour. Si une ancienne adresse apparaît, c’est qu’un résolveur renvoie encore une réponse mise en cache, qu’il peut conserver jusqu’à l’expiration du TTL. [2] Après un changement de serveurs DNS ou de registrar, Google Public DNS peut lui aussi renvoyer d’anciennes réponses ; son outil Flush Cache permet de les effacer. [3]

Un enregistrement erroné ou manquant. Cherchez une faute de frappe dans l’adresse, un enregistrement laissé par le registrar, un enregistrement www manquant, ou des modifications faites chez un hébergeur DNS que le domaine n’utilise plus. Un enregistrement www manquant bloque aussi HTTPS, car chaque nom de la demande de certificat doit réussir la validation. [10] Supprimez les enregistrements AAAA, sauf si le serveur répond réellement sur cette adresse IPv6.

Le port 80 est bloqué. Selon Let's Encrypt, les échecs de validation HTTP-01 viennent généralement de paramètres réseau ou de pare-feu qui empêchent ses serveurs d’atteindre le vôtre. [10] Vérifiez sudo ufw status et le pare-feu de votre hébergeur, et laissez le port 80 ouvert après le passage à HTTPS, car les plugins nginx et Apache de Certbot en ont besoin. [4]

Trop de tentatives échouées. Un compte ne peut échouer que 5 fois par heure à la validation d’un même nom ; au-delà, Let's Encrypt refuse toute nouvelle commande pour ce nom jusqu’à ce que ce quota se reconstitue, au rythme d’une tentative toutes les 12 minutes. [10] Il n’émet par ailleurs pas plus de 5 certificats pour exactement le même ensemble de noms tous les 7 jours, et réinstaller le client pendant un dépannage est une façon courante d’atteindre cette limite. [10] Let's Encrypt ne peut pas lever une limite avant son terme, et révoquer des certificats ne la réinitialise pas non plus : corrigez donc la cause avant de réessayer ; pour vos essais, il recommande son environnement de test (staging), dont les limites sont bien plus élevées. [10]

Si le domaine et le certificat fonctionnent mais que la page affiche 502 Bad Gateway, suivez pas à pas notre guide pour corriger l’erreur 502 Bad Gateway.

Questions fréquentes

Combien de temps faut-il pour qu’un nom de domaine pointe vers un nouveau VPS ?

Cela dépend du TTL des enregistrements et de ce que les résolveurs ont déjà mis en cache. Chez Cloudflare, les enregistrements en mode Proxied ont par défaut un TTL de 300 secondes, ceux en DNS only utilisent la valeur que vous avez définie, et un résolveur peut conserver une ancienne réponse jusqu’à l’expiration de son TTL. [2]

Faut-il un enregistrement A ou un CNAME pour www ?

Les deux fonctionnent. Un enregistrement A fait pointer www directement vers l’adresse IPv4 du serveur, tandis qu’un CNAME le fait pointer vers un autre nom, comme example.com : www suit alors cet enregistrement si l’adresse change. [2]

Let's Encrypt est-il gratuit ?

Oui. Let's Encrypt ne fait pas payer ses certificats, dont la validité par défaut est de 90 jours. [1]

Combien de temps les certificats Let's Encrypt sont-ils valables ?

Aujourd’hui, les certificats Let's Encrypt par défaut sont valables 90 jours. [1] À partir du 10 février 2027, les nouveaux certificats et les certificats renouvelés seront valables 64 jours par défaut, et Let's Encrypt prévoit de passer à 45 jours par défaut en 2028. [8]

Quel mode SSL/TLS de Cloudflare utiliser avec Let's Encrypt ?

Utilisez Full (strict). Ce mode valide le certificat de votre serveur, qui peut provenir de Let's Encrypt, alors que Flexible laisse la connexion entre Cloudflare et votre serveur non chiffrée. [9]

Sources et références
  1. FAQ — Let's Encrypt (consulté le 2026-11-03)
  2. DNS record types — Cloudflare Docs (consulté le 2026-11-03)
  3. Troubleshooting — Google Public DNS (consulté le 2026-11-03)
  4. Certbot instructions: Nginx on Linux (snap) — Certbot (EFF) (consulté le 2026-11-03)
  5. ufw(8): program for managing a netfilter firewall — Ubuntu Manpages (consulté le 2026-11-03)
  6. How to configure nginx — Ubuntu Server documentation (consulté le 2026-11-03)
  7. How to configure Apache2 settings — Ubuntu Server documentation (consulté le 2026-11-03)
  8. 64-Day Certificate Lifetimes Coming Feb 2027 — Let's Encrypt (consulté le 2026-11-03)
  9. Encryption modes — Cloudflare Docs (consulté le 2026-11-03)
  10. Rate Limits — Let's Encrypt (consulté le 2026-11-03)

À lire aussi