XMPP - Un nom de domaine sûr

9 mai 2021

Maintenant récupérons les certificats de chiffrement. Nous utiliserons les services de Let’s Encrypt avec Certbot.

Tout d’abord, de quels certificats avons-nous besoin ? Ouvrons les logs. Une recherche sur "check_domain_certfiles" et "poivron" nous donne ces lignes :

/var/log/ejabberd/ejabberd.log ... No certificate found matching xmpp.poivron-robotique.fr ... No certificate found matching conference.xmpp.poivron-robotique.fr ... No certificate found matching pubsub.xmpp.poivron-robotique.fr

Pour utiliser Certbot, nous devons rediriger les connexions sur le port 80 de ces domaines vers le Raspberry Pi. Retournons dans l’administration de notre DNS et créons les enregistrements pour rediriger les domaines conference.xmpp.poivron-robotique.fr et pubsub.xmpp.poivron-robotique.fr vers notre routeur :

conference.xmpp.poivron-robotique.fr 900 A 176.190.83.229 pubsub.xmpp.poivron-robotique.fr 900 A 176.190.83.229

Sur le routeur, dirigez le port 80 vers le Raspberry Pi (sur le même port).

Sur le Rapsberry Pi, en administrateur, installez Certbot :

apt install cerbot

Lancez Certbot

certbot certonly --standalone

 Entrez votre email ;
 Acceptez les conditions d’utilisation (après les avoir lues) ;
 Choisissez si vous souhaitez partager votre email avec l’EFF (c’est eux qui fournissent ces certificats gratuitement) ;
 Entrez la liste des domaines pour lesquels vous voulez des certificats, séparés par des espaces ou des virgules.

Si vous rencontrez des soucis, modifiez votre configuration puis relancez Certbot uniquement sur les domaines problématiques avec la commande suivante :

certbot certonly --standalone --expand

Lancez un test de renouvellement de certificat pour vous assurer que tous vos domaines sont pris en compte.

certbot renew --dry-run

Attention, un seul fichier peut contenir les clés de plusieurs domaines, comme indiqué ici :

Simulating renewal of an existing certificate for conference.xmpp.poivron-robotique.fr and pubsub.xmpp.poivron-robotique.fr

Modifiez ejabberd.yml pour ajouter les certificats générés :

/etc/ejabberd/ejabberd.yml certfiles: - "/etc/ejabberd/ejabberd.pem" - /etc/letsencrypt/live/*/fullchain.pem - /etc/letsencrypt/live/*/privkey.pem

Donnez les droits à ejabberd de lire ces certificats.

chmod -R g+xr /etc/letsencrypt/ chgrp -R ejabberd /etc/letsencrypt/live/ chgrp -R ejabberd /etc/letsencrypt/archive/

Rechargez la configuration du serveur en surveillant les logs. Vous pouvez le faire ainsi :

tail -f /var/log/ejabberd/ejabberd.log & ejabberdctl reload_config

Faites CTRL+C pour arrêter d’afficher les logs. En attendant vous pouvez continuer de taper des commandes.

Vous ne devriez plus voir apparaître de ligne du type :

No certificate found matching pubsub.xmpp.poivron-robotique.fr

Testez !

Utilisez un client où vous n’avez pas désactivé le contrôle des certificats (ou Dino sous Linux) et essayez de vous connecter. Si ça marche, vous commencez à avoir quelque chose de vraiment fonctionnel !

Commentaires

Il n'y a pas de commentaires

Ajouter un commentaire

Pseudo :
Mail :

Texte :

Copyright "POIVRON" 2011-2023, tous droits réservés
Administration du site