Paramétrer un DNS avec un certificat sur Infomaniak
Ayant un DNS gratuit fourni par Free (merci à eux), j'ai décidé dernièrement de franchir le pas et de me prendre un nom de domaine. J'ai toujours pensé que ça coûtait un max, mais après en avoir discuté avec plusieurs personnes et regardé les tarifs sur internet, il s'avère qu'en fait... non.
Sur les conseils d'une connaissance, j'ai jeté mon dévolu sur Infomaniak parce qu'ils ne sont pas très cher, plutôt complets et ethique (et tac). Le but était de pouvoir utiliser des sous-domaines, ce que je ne pouvais pas faire avec le DNS de Free.
Problème n°1 : Si Free sait exactement quelle est mon adresse IP (vu que c'est mon FAI), Infomaniak lui n'en a aucune idée... il faut donc commencer par paramétrer le DNS afin qu'il pointe sur mon serveur :
- Aller sur la page de gestion d'Infomaniak
- Dans le menu Web et Domaines, cliquer sur Domaines -> catanic.fr -> Zone DNS -> Ajouter un enregistrement et saisir les informations :

- Remplir les valeurs comme sur l'image. Dans le champ Valeur, mettre l'adresse IP du serveur et enregistrer.
Le DNS est maintenant paramétré. Il est possible de vérifier le bon paramétrage en exécutant la commande :
> host xxx.catanic.fr(oui oui ça marche avec xxx).
Problème n°2 : Ajouter un certificat https pour une adresse unique est simple. En ajouter un pour l'ensemble des sous-domaines est un peu plus compliqué...
Avant de quitter la page de gestion d'Infomaniak, il faut générer un token d'accès qui servira lors du renouvellement du certificat. Sur la page d'accueil, cliquer sur Utilisateurs et profil -> Mon profil -> Développeur -> Tokens API -> Créer un token :

Remplir les valeurs comme sur l'image. Une fois le token créé, il s'affiche et il est impératif de le noter car après ça il ne sera plus accessible :

Sur le serveur :
- Installer les paquets certbot et python3-pip à l'aide du gestionnaire de paquet linux. Une fois effectué, installer le plugin Infomaniak pour certbot à l'aide de la commande :
> sudo pip install certbot-dns-infomaniak --break-system-packages- Ajouter le token généré sur Infomaniak dans un fichier credentials.ini. Le fichier doit être sécurisé (accessible seulement à root). Le remplir avec la ligne :
dns_infomaniak_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX- Puis générer le certificat :
> certbot certonly \
--authenticator dns-infomaniak \
--dns-infomaniak-credentials <path to file> \
--server https://acme-v02.api.letsencrypt.org/directory \
--agree-tos \
--rsa-key-size 4096 \
-d '*.catanic.fr'- Ajouter le token dans le fichier /lib/systemd/system/certbot.service, section [Service] :
Environment="INFOMANIAK_API_TOKEN=<YOUR_API_TOKEN>"Voilà, le serveur est prêt !