doc/certmanager_fr.md
2017-01-30 17:42:16 +01:00

9.6 KiB

Gestion du certificat

Cette fonctionnalité est seulement disponible sur la beta pour le moment. Elle devrait être rendue publique prochainement.

Gérer les certificats avec Yunohost

La fonctionnalité principale du gestionnaire de certificat est de permettre l'installation de certificat Let's Encrypt facilement sur vos domaines. Vous pouvez l'utiliser depuis l'interface d'admin web (Certificat SSL sur la page d'info d'un domaine), ou avec la ligne de commande avec yunohost domain cert-status, cert-install et cert-renew.

De quoi ai-je besoin pour avoir un certificat Let's Encrypt ?

Votre serveur doit être accessible depuis le reste d'Internet sur le port 80 (et 443), et le DNS de votre nom.de.domaine.tld doit être correctement configuré (i.e. le domaine doit pointer sur l'IP publique de votre serveur). Vous pouvez vous aider de cette documentation si vous avez besoin d'aide.

Est-ce que mon certificat sera renouvelé automatiquement ?

Oui. À l'heure actuelle, les certificats Let's Encrypt sont valides pendant 90 jours. Une tâche automatique (cron job) sera éxécutée tous les jours pour renouveller les certificats qui expirent dans moins de 15 jours. Un email sera envoyé à l'utilisateur root si le renouvellement échoue.

Je souhaite/j'ai besoin d'utiliser un certificat d'une autre autorité de certification

Ceci n'est pas géré automatiquement pour le moment. Il vous faudra créer manuellement un Requete de Signature de Certificat (CSR) qui devra être donné à votre CA, puis importer le certificat obtenu. Plus d'informations sur cette page. Ce processus sera peut-être rendu plus facile par YunoHost dans le futur.

Procédure de migration

À cause des limitations actuelles sur la fréquence d'émissions de nouveaux certificats Let's Encrypt, nous recommandons que vous ne migriez pas vers cette nouvelle fonctionnalité tant que vous n'en avez pas besoin. C'est en particulier vrai pour les utilisateurs de nohost.me / nohost.st (et d'autres sevices de nom de domaine gratuit qui partagent un sous-domaine commun). Si trop de monde migrent pendant la même période, vous vous retrouverez peut-être bloqué avec un certificat auto-signé pendant quelques jours !

J'ai utilisé l'application letsencrypt_ynh.

Il vous sera demandé de désinstaller l'application pour pouvoir utiliser la nouvelle gestion de certificat. Vous pouvez procéder à la désinstallation depuis l'interface web, ou bien depuis la ligne de commande avec :

yunohost app remove letsencrypt
yunohost domain cert-install

Soyez conscients que la première commande devrait remettre en place des certificats auto-signé sur vos domaines. La deuxième commande tentera ensuite d'installer un certificat Let's Encrypt sur chacun de vos domaine ayant un certificat auto-signé.

J'ai installé mes certificats Let's Encrypt manuellement

Il vous faut aller dans la configuration nginx et retirer les fichiers letsencrypt.conf (ou le nom que vous lui avez donné et qui contient un bloc location '/.well-known/acme-challenge') pour chacun de vos domaines. Supprimez aussi la tâche automatique (certificateRenewer) dans /etc/cron.weekly/, et backupez puis supprimer le répertoire /etc/letsencrypt/.

Finalement, faites :

yunohost domain cert-install your.domain.tld --force

pour chacun des domaines pour lesquels vous souhaitez avoir un certificat Let's Encrypt.

Dépannage

L'interface d'admin bloque l'accès à l'interface de gestion du certificat en prétendant que l'app letsencrypt est installée, pourtant elle n'est pas là !

Assurez-vous que le cache du navigateur est bien raffraîchi (Ctrl + Shift + R sur Firefox). Si cela ne résouds pas le problème, rapportez votre expérience sur le bugtracker ou le forum. Vous pouvez contourner le problème en utilisant la ligne de commande : yunohost domain cert-install your.domain.tld.

J'ai essayé de désinstaller l'application Let's Encrypt, mais cela a cassé ma configuration nginx !

Désolé. Quelques utilisateurs ont rapporé que cela arrive lorsque le script de désinstallation ne trouve pas de backup des certificats auto-signés. Utiliser yunohost domain cert-install devrait tout de même fonctionner...

J'obtiens "Too many certificates already issued", que se passe-t-il ?

Pour l'instant, Let's Encrypt a mis en place un taux limite d'émission de certificat, qui est de 20 nouveaux certificats pendant une période de 7 jours pour un sous-domaine donné. Par exemple, les domaines nohost.me et noho.st sont considéré comme des sous-domaines (des domaines me et st). ce qui veut dire que tous les utilisateurs du service nohost.me / noho.st partagent une même limite commune. D'après Let's Encrypt, ceci s'applique aux nouveaux certificats, mais pas aux renouvellements ou duplications. Si vous rencontrez ce message, il n'y a donc pas grand chose à faire autre que ré-essayer dans quelques heures/jours.

L'installation du certificat échoue avec "Wrote file to 'un chemin', but couldn't download 'une url'" !

Cela devrait être réparé dans le futur, mais pour le moment vous pouvez tenter d'ajouter la ligne suivante au fichier /etc/hosts du serveur :

127.0.0.1 your.domain.tld

 propos des certificats et de Let's Encrypt

Qu'est-ce que HTTPS ? À quoi servent les certificats SSL ?

HTTPS est la version sécurisée du protocole HTTP, qui décrit comment un client (par ex. votre navigateur web) et un serveur (par ex. nginx qui tourne sur votre instance YunoHost) peuvent discuter entre eux. HTTPS s'appuie fortement sur la cryptographie asymmétrique pour garantir deux choses:

  • la confidentialité, ce qui veut dire qu'un attaquant ne sera pas capable de déchiffrer le contenu d'une communication si elle est interceptée ;
  • l'identification du serveur, ce qui veut dire qu'un serveur peut et doit prouver qui il prétend être, dans le but d'éviter les attaques man-in-the-middle.

Les certificats SSL sont utilisés par les serveurs pour prouver leur identitié. Le processus général repose sur la confiance en des tiers, appelés Autorité de Certification (CA), dont le rôle est de vérifier l'identité d'un serveur (par ex. qu'une machine donnée contrôle bien le domaine jaimelecafe.com) avant de délivrer des certificats cryptographiques.

Pourquoi est-ce que les navigateurs se plaignent de mon certificat auto-signé ?

Les certificats auto-signés sont, comme leur nom l'indique, auto-signés, ce qui veut dire que le serveur était sa propre autorité de certification lorsqu'il a créé le certificat. Un tel certificat ne permet pas de vérifier et garantir l'identité du serveur, puisqu'il aurait tout aussi pu être généré par un attaquant de son côté, dans le but de réaliser une attaque man-in-the-middle.

Que se passe-t-il avec Let's Encrypt ?

Historiquement, le processus de vérification de l'identité des serveurs demandait une intervention humaine, donc du temps et de l'argent.

En 2015, Let's Encrypt a développé un protocole nommé ACME, qui permet de vérifier automatiquement qu'une machine contrôle un domaine, et de délivrer un certificat gratuitement, réduisant drastriquement le coût de mise en place d'un certificat SSL.

Comment marche Let's Encrypt ?

Pour vérifier l'identité de votre serveur et délivrer un certificat, Let's Encrypt utilise le protocole ACME. Il fonctionne grosso-modo de la manière suivante (simplifiée, mais vous comprendrez l'idée) :

  • Un programme tourne sur votre serveur et contacte l'autorité de certification Let's Encrypt et lui demande un certificat pour le domaine jaimelecafe.com.
  • L'autorité de certification Let's Encrypt génère une chaîne de caractère aléatoire comme A84F2D0B, et dit au programme sur votre serveur de prouver qu'il gère le domaine jaimelecafe.com en rendant l'URI http://jaimelecafe.com/.well-known/acme-challenge/A84F2D0B accessible.
  • Le programme sur votre serveur créé/modifie des fichiers en conséquence.
  • La CA Let's Encrypt tente d'accéder à l'URI. Si cela fonctionne, elle conclue que le programme contròle bien le domaine jaimelecafe.com, et lui délivre un certificat.
  • Le programme sur votre serveur récupère le certificat et le met en place.

As-t-on vraiment besoin des autorités de certification ?

La dépendance aux autorités de certification peut être critiquée, car elles constituent des points centraux vulnérables dans le schéma de sécurité. Certaines autorités ont été reconnues coupable d'avoir délivré de faux certificats par le passé, parfois avec des implications sérieuses et très concrètes. [1, 2].

Des alternatives ont été proposées, comme DANE/DNSSEC, qui repose sur les DNS et ne nécessite pas d'autorité de certification.