Comment installer SSL sur un VPS sans interruption de service
Publié le 9 novembre 2026

Pour installer SSL sur un VPS en toute sécurité, vérifiez d'abord que votre domaine pointe vers le VPS, que les ports 80 et 443 sont accessibles et que le serveur web diffuse déjà le bon site. L'installation de SSL est généralement rapide. Les problèmes qui causent des complications viennent presque toujours du DNS, des règles de pare-feu ou d'une configuration d'hôte virtuel qui pointe vers un emplacement inattendu.
Un certificat valide chiffre le trafic entre un visiteur et votre application. Il active également le cadenas dans le navigateur, protège les sessions de connexion et les formulaires de paiement, et évite la page d'avertissement qui fait fuir les clients avant même que votre site web ait la moindre chance de fonctionner. Pour un site de commerce électronique, un tableau de bord SaaS, le site d'un client d'agence ou un portail de messagerie professionnelle, c'est une mesure d'hygiène de base en production.
Avant d'installer SSL sur un VPS, vérifiez ces points essentiels
Commencez par vérifier l'enregistrement DNS. L'enregistrement A de votre domaine doit résoudre vers l'adresse IPv4 publique du VPS. Si vous utilisez IPv6, l'enregistrement AAAA doit également pointer vers le même serveur. Un enregistrement AAAA oublié est un grand classique : certains visiteurs atteignent le nouveau serveur, tandis que d'autres arrivent sur un ancien et reçoivent une erreur de certificat.
Ensuite, assurez-vous que les ports TCP entrants 80 et 443 sont ouverts aux deux endroits importants : le pare-feu du VPS et tout pare-feu configuré chez votre fournisseur. La validation HTTP courante de Certbot nécessite que le port 80 soit disponible, temporairement ou en permanence. Votre serveur web doit répondre aux requêtes pour le domaine sur ce port.
Vous devez également identifier le serveur web et le système d'exploitation avant de modifier quoi que ce soit. Les commandes ci-dessous supposent que vous utilisez Ubuntu ou Debian avec Nginx ou Apache. Les mêmes principes de certificat s'appliquent à AlmaLinux, Rocky Linux et aux autres distributions, mais les noms des paquets et les commandes de service peuvent différer.
Commencez par sauvegarder la configuration de votre serveur web. Un instantané du VPS ou une sauvegarde de `/etc/nginx/` ou de `/etc/apache2/` vous fournit un point de restauration propre. Ce n'est pas une opération spectaculaire, simplement une bonne pratique d'exploitation. Vous vous en féliciterez à 2 h du matin.
Choisissez le type de certificat adapté
Pour la plupart des sites web, un certificat Let's Encrypt gratuit est le choix le plus judicieux. Il fournit le même chiffrement des communications que les certificats commerciaux et convient parfaitement aux sites web classiques, aux API et aux panneaux de contrôle. Le certificat est valide pendant 90 jours ; son renouvellement automatique fait donc partie de l'installation, ce n'est pas une option supplémentaire.
Un certificat payant peut convenir lorsque votre organisation a besoin d'un niveau de validation particulier, de conditions de garantie spécifiques, d'une autorité de certification précise ou d'un processus d'achat géré. Les étapes d'installation diffèrent légèrement : vous générez une demande de signature de certificat, recevez les fichiers émis, puis installez manuellement la chaîne de certificats.
Si votre application s'exécute derrière Cloudflare, un répartiteur de charge ou un autre proxy inverse, décidez où le protocole TLS doit se terminer. Vous pourriez avoir besoin d'un certificat sur le proxy et d'un autre entre le proxy et le VPS. Ne partez pas du principe qu'une icône de nuage orange ou un répartiteur de charge supprime la nécessité de chiffrer la connexion avec le serveur d'origine. Cela dépend du mode de sécurité, mais le chiffrement de bout en bout est généralement la configuration de production à privilégier.
Installer un certificat Let's Encrypt avec Certbot
Sur Ubuntu ou Debian, mettez à jour les informations des paquets et installez Certbot avec le module correspondant à votre serveur web. Pour Nginx, utilisez :
```bash sudo apt update sudo apt install certbot python3-certbot-nginx ```
Pour Apache, installez plutôt le module Apache :
```bash sudo apt update sudo apt install certbot python3-certbot-apache ```
Avant d'exécuter Certbot, testez la configuration du serveur web. Pour Nginx :
```bash sudo nginx -t ```
Pour Apache :
```bash sudo apachectl configtest ```
Corrigez les erreurs signalées avant de continuer. La demande de certificat peut aboutir alors que le rechargement échoue, laissant le certificat sur le disque, mais inactif pour les visiteurs. Les journaux racontent maintenant la même histoire ; consultez-les avant d'ajouter un nouvel élément à l'équation.
Pour un site Nginx, demandez le certificat et autorisez Certbot à modifier le bloc serveur :
```bash sudo certbot --nginx -d example.com -d www.example.com ```
Pour Apache, exécutez :
```bash sudo certbot --apache -d example.com -d www.example.com ```
Remplacez `example.com` par votre véritable nom de domaine. N'incluez `www` que s'il existe dans le DNS et qu'il est configuré dans le serveur web. Lors des invites, indiquez une adresse e-mail valide, acceptez les conditions et choisissez l'option de redirection si vous souhaitez que tout le trafic HTTP soit envoyé vers HTTPS. Dans la plupart des cas, la redirection est le bon choix. Elle empêche les visiteurs d'accéder à une version non chiffrée de la même page.
Certbot obtiendra le certificat, ajoutera les chemins d'accès à la configuration du serveur et rechargera le service concerné. Les requêtes HTTP en cours peuvent se terminer normalement, et un rechargement standard ne provoque généralement pas d'interruption notable. Toutefois, effectuez cette opération pendant une période plus calme si votre application utilise une configuration de proxy complexe ou des règles de réécriture personnalisées.
Installer manuellement un certificat SSL commercial
Si vous avez acheté un certificat, créez une clé privée et une demande de signature de certificat sur le VPS. Conservez la clé privée sur le serveur et ne l'envoyez jamais par e-mail ni ne la joignez à un ticket d'assistance.
```bash sudo openssl req -new -newkey rsa:2048 -nodes \ -keyout /etc/ssl/private/example.com.key \ -out /etc/ssl/certs/example.com.csr ```
Votre fournisseur de certificats émettra un certificat serveur et un ou plusieurs certificats intermédiaires. Si votre fournisseur l'exige, regroupez les certificats intermédiaires dans la chaîne complète. Avec Nginx, le bloc serveur doit généralement contenir les directives suivantes :
```nginx listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/ssl/certs/example.com.fullchain.pem; ssl_certificate_key /etc/ssl/private/example.com.key; ```
Apache utilise les directives équivalentes `SSLCertificateFile` et `SSLCertificateKeyFile` dans l'hôte virtuel HTTPS. L'organisation exacte des fichiers peut varier selon la distribution et le panneau de contrôle ; ne copiez donc pas les chemins sans les vérifier. Vérifiez également le propriétaire et les autorisations. En règle générale, seul root et, si nécessaire, le compte de service doivent pouvoir lire la clé privée.
Testez la configuration, puis rechargez le service plutôt que de le redémarrer, si possible :
```bash sudo nginx -t && sudo systemctl reload nginx ```
Un rechargement conserve les processus de travail actifs tout en appliquant la nouvelle configuration. C'est l'option la plus sereine lorsqu'elle est disponible.
Vérifier le certificat et le comportement des redirections
Ouvrez votre domaine dans une fenêtre de navigation privée en utilisant `https://`. Vérifiez que le domaine affiché correspond au certificat et que le navigateur indique que la connexion est valide. Testez ensuite la version HTTP et confirmez qu'elle redirige vers HTTPS.
Depuis le VPS ou un autre terminal, vous pouvez examiner les en-têtes de réponse :
```bash curl -I http://example.com curl -I https://example.com ```
La requête HTTP doit renvoyer une redirection 301 ou 308 vers l'adresse HTTPS. La requête HTTPS doit renvoyer le code d'état attendu, souvent 200, 301 ou 302 selon votre application.
Inspectez également directement le certificat :
```bash sudo certbot certificates ```
Pour un certificat commercial, utilisez OpenSSL pour vérifier sa date d'expiration et les informations sur l'émetteur :
```bash openssl x509 -in /etc/ssl/certs/example.com.fullchain.pem -noout -dates -issuer -subject ```
Ne vous arrêtez pas au cadenas. Le contenu mixte peut tout de même affecter les pages si des scripts, des images, des polices ou des appels d'API sont chargés à partir d'URL `http://`. Les outils de développement du navigateur signalent ces avertissements. Mettez à jour les URL codées en dur, les variables d'environnement de l'application ainsi que les paramètres du CDN ou des ressources.
Faites du renouvellement une tâche surveillée
Les certificats Let's Encrypt doivent être renouvelés avant leur expiration, au bout de 90 jours. Les versions modernes de Certbot installent généralement automatiquement un minuteur systemd, mais vérifiez-le au lieu de faire confiance à un serveur silencieux.
```bash sudo systemctl list-timers | grep certbot sudo certbot renew --dry-run ```
Le test à blanc est le test qui compte vraiment. Il confirme que le VPS pourra effectuer la validation ultérieure et recharger le serveur web après le renouvellement. En cas d'échec, résolvez le problème tant que le certificat actuel est encore valide.
Pour les certificats commerciaux, inscrivez bien à l'avance la date d'expiration à votre calendrier. Le renouvellement est souvent manuel, sauf si votre fournisseur de certificats ou votre plateforme de gestion prend en charge l'automatisation. Ajoutez si possible un suivi de l'expiration du certificat. Un certificat valide qui expire sans que personne ne s'en aperçoive entraîne tout de même une interruption de service, avec en prime un message d'erreur très officiel dans le navigateur.
Chez kodu.cloud, l'assistance opérationnelle gérée et la surveillance peuvent réduire ce type de risque récurrent, en particulier lorsqu'un VPS héberge plusieurs domaines clients ou services de production. L'objectif est simple : les certificats doivent être renouvelés discrètement, sans que votre équipe ait à s'en souvenir chaque trimestre.
Problèmes courants après l'installation de SSL
Une erreur de certificat signifie généralement que la requête atteint le mauvais VPS, que le mauvais hôte virtuel est défini par défaut ou qu'un nom d'hôte tel que `www` a été omis de la demande de certificat. Vérifiez d'abord le DNS, puis examinez les noms de serveur configurés dans le serveur web.
Un échec de validation indique généralement un problème lié au port 80, à la propagation DNS ou à la configuration du proxy. Si le domaine utilise un CDN, vérifiez que ses enregistrements DNS et son mode proxy autorisent la méthode de validation choisie. La validation par défi DNS est souvent préférable pour les certificats génériques, mais elle nécessite un accès à l'API DNS ou une procédure manuelle de création d'enregistrement DNS.
Si le site web est pris dans une boucle de redirection après l'activation forcée de HTTPS, recherchez les redirections concurrentes dans l'application, Nginx ou Apache, ainsi que dans tout proxy inverse. Les applications derrière un proxy peuvent nécessiter un paramètre d'en-tête transféré de confiance afin de reconnaître que la requête d'origine utilisait HTTPS. Quand cela se produit, la situation DNS n'est pas des plus élégantes, mais elle est maîtrisable dès qu'un responsable unique gère les redirections.
Intégrez le certificat, la configuration du serveur web et les vérifications de renouvellement à la même routine d'exploitation. Un certificat SSL correctement installé devrait devenir une infrastructure sans histoire : présent, vérifié et sans besoin d'attention particulière.
Andres Saar, ingénieur du service clientèle