Skip to content

fr_HTTPS TLS Certificate

michel-heon edited this page Mar 12, 2026 · 4 revisions

Certificat HTTPS / TLS

🇬🇧 This page is also available in English: HTTPS-TLS-Certificate

VIVO est servi exclusivement via HTTPS (port 443). Cette page explique comment le certificat TLS est provisionné et ce à quoi vous devez vous attendre.


Certificat Let's Encrypt automatique

À partir de la version d'image 1.0.11, la VM obtient automatiquement un certificat TLS de confiance via Let's Encrypt lors du premier démarrage.

Fonctionnement :

  1. Au premier démarrage, nginx démarre avec un certificat auto-signé temporaire.
  2. La VM exécute automatiquement certbot --nginx contre le nom de domaine complet (FQDN) assigné par Azure :
    {projectName}-{uniqueHash}.{region}.cloudapp.azure.com
    
  3. Certbot complète le défi ACME HTTP-01 sur le port 80 (ouvert par défaut).
  4. Nginx est automatiquement reconfiguré et rechargé avec le certificat de confiance.
  5. Le renouvellement automatique est activé (tous les 90 jours).

Aucune action manuelle requise. Le certificat est provisionné automatiquement en arrière-plan lors du premier démarrage (~2–5 minutes).


Vérifier le certificat

Une fois VIVO accessible, vérifiez que le certificat est valide :

# Depuis la VM
sudo certbot certificates

# Résultat attendu :
# Found the following certs:
#   Certificate Name: vivo-xxxx.canadacentral.cloudapp.azure.com
#   Domains: vivo-xxxx.canadacentral.cloudapp.azure.com
#   Expiry Date: 2026-06-05 (VALID: 89 days)
#   Certificate Path: /etc/letsencrypt/live/.../fullchain.pem

Ou depuis votre navigateur : cliquez sur l'icône de cadenas → Certificat → vérifiez que l'émetteur est Let's Encrypt.


Avertissement de sécurité du navigateur (certificat auto-signé de secours)

Si certbot échoue lors du premier démarrage (ex. : délai de propagation DNS, limite de taux Let's Encrypt), nginx bascule sur le certificat auto-signé généré à la création de l'image.

Symptôme : Firefox/Chrome affiche un avertissement de sécurité pour l'adresse IP ou le FQDN.

Contournement (tests uniquement) : Cliquez sur Avancé → Accepter le risque et continuer pour accéder à VIVO.

Correction : Connectez-vous en SSH à la VM et exécutez certbot manuellement (voir ci-dessous).


Provisionnement manuel du certificat

Si le provisionnement automatique a échoué, la méthode recommandée depuis votre poste de travail est :

make certbot IP=<ip-publique-vm> FQDN=<fqdn> EMAIL=<votre@courriel.com> SSH_KEY=~/.ssh/votre-clé.pem

Cette commande se connecte en SSH à la VM, exécute certbot --nginx et active le certbot.timer pour le renouvellement automatique.

Sinon, connectez-vous directement en SSH à la VM et exécutez certbot manuellement après avoir vérifié que le port 80 est accessible :

# Remplacez par votre FQDN réel (voir Portail Azure → VM → Nom DNS)
FQDN="vivo-xxxx.canadacentral.cloudapp.azure.com"

sudo certbot --nginx \
  -d "${FQDN}" \
  --non-interactive \
  --agree-tos \
  --email "your@email.com" \
  --redirect

Vérifiez que nginx a bien été rechargé :

sudo nginx -t && sudo systemctl reload nginx
sudo certbot certificates

Renouvellement du certificat

Les certificats émis par Let's Encrypt expirent tous les 90 jours et sont renouvelés automatiquement.

Vérifiez le minuteur de renouvellement :

systemctl status certbot.timer
# ou
sudo certbot renew --dry-run

Si certbot.timer n'est pas présent (versions Ubuntu plus anciennes), une tâche cron dans /etc/cron.d/certbot assure le renouvellement.


Journaux

# Journal d'initialisation de la VM (inclut la sortie certbot)
sudo grep -i certbot /var/log/vivo-first-boot.log

# Journal complet certbot
sudo tail -50 /var/log/letsencrypt/letsencrypt.log

Utiliser un certificat personnalisé

Si votre institution fournit son propre certificat TLS, remplacez les fichiers de certificat nginx :

# Copiez votre certificat et clé vers la VM
scp your-cert.pem azureuser@<public-ip>:/tmp/
scp your-key.pem  azureuser@<public-ip>:/tmp/

# Sur la VM
sudo cp /tmp/your-cert.pem /etc/nginx/ssl/vivo.crt
sudo cp /tmp/your-key.pem  /etc/nginx/ssl/vivo.key
sudo chmod 644 /etc/nginx/ssl/vivo.crt
sudo chmod 600 /etc/nginx/ssl/vivo.key
sudo nginx -t && sudo systemctl reload nginx

Pour empêcher certbot d'écraser votre certificat, désactivez le minuteur de renouvellement :

sudo systemctl disable --now certbot.timer

Page originale (English) : HTTPS-TLS-Certificate

Clone this wiki locally