Certificat
Les certificats sont utilisés pour garantir la confidentialité et l'authenticité des communications entre un navigateur web et votre serveur. En particulier, il permet de protéger les visiteurs contre des attaquants qui chercheraient à usurper l'identité du serveur.
YunoHost fournit par défaut un certificat auto-signé, ce qui veut dire que c’est votre serveur qui garantit la validité du certificat. C’est suffisant pour un usage personnel, car vous pouvez avoir confiance en votre serveur, en revanche cela posera problème si vous comptez ouvrir l’accès à votre serveur à des anonymes, par exemple pour héberger un site web.
En effet, les utilisateurs devront passer par un écran de ce type :

Cet écran revient à demander « Avez-vous confiance au serveur qui héberge ce site ? ». Cela peut effrayer vos utilisateurs (à juste titre).
To avoid this confusion, it's possible to get a certificate signed a known authority named Let's Encrypt which provide free certificates directly recognized by browsers. YunoHost allows to directly install this certificate from the web administration interface or from the command line.
Installer un certificat Let's Encrypt
Avant de chercher à installer un certificat Let's Encrypt, assurez vous que votre DNS est correctement configuré (votre.domaine.tld doit pointer sur l'IP de votre serveur) et que votre site est accessible en HTTP depuis l'extérieur (c.-à-d. qu'au moins le port 80 est correctement redirigé vers votre serveur).
- Depuis la webadmin
- Depuis la ligne de commande
Rendez-vous dans la partie 'Domaines' de l'interface d'administration, puis dans la section dédiée à votre domaine. Vous trouverez un bouton 'Certificat SSL'.

Dans la section 'Certificat SSL', vous pourrez voir l'état actuel du certificat. Si vous venez d'ajouter le domaine, il dispose d'un certificat auto-signé.

Si votre domaine est correctement configuré, il vous est alors possible de passer à un certificat Let's Encrypt via le bouton vert.

Une fois l'installation effectuée, vous pouvez vous rendre sur votre domaine via votre navigateur, en HTTPS, pour vérifier que votre certificat est bien signé par Let's Encrypt. Le certificat sera renouvelé automatiquement tous les trois mois environ.

Connectez-vous sur votre serveur en SSH.
Vous pouvez vérifier le statut actuel de votre certificat via :
yunohost domain cert status your.domain.tld
Installez le certificat Let's Encrypt via :
yunohost domain cert install your.domain.tld
Cette commande doit retourner :
Success! The SSOwat configuration has been generated
Success! Successfully installed Let's Encrypt certificate for domain DOMAIN.TLD!
Une fois l'installation effectuée, vous pouvez vous rendre sur votre domaine via votre navigateur, en HTTPS, pour vérifier que votre certificat est bien signé par Let's Encrypt. Le certificat sera renouvelé automatiquement tous les trois mois environ.
En cas de problème
Si, suite à une mauvaise manipulation, un certificat se retrouve dans une situation fâcheuse (e.g. perte du certificat ou impossible de lire le certificat), il est possible de repartir sur des bases propres en regénérant un certificat auto-signé :
yunohost domain cert install your.domain.tld --self-signed --force
Si YunoHost trouve que votre domaine est mal configuré quand bien même vous avez bien vérifié votre configuration DNS et avez bien accès à votre serveur en HTTP depuis l'extérieur, vous pouvez tenter :
- add a line
127.0.0.1 your.domain.tldto the file/etc/hostson your server; - if the certificate installation still doesn't work, you can disable the checks with
--no-checksafter thecert installcommand.