Dans cet article nous allons voir comment installer un certificat Let'sEncrypt valide sur un serveur UniFi sous linux ou sur la CloudKey.
Pourquoi me diriez vous ? Eh bien tout simplement car par défaut le contrôleur UniFi génère un certificat SSL qui n'est pas validé par une autorité de certification. Le résultat, votre navigateur vous affiche une demande de validation pour vous connecter au Contrôleur.
De plus, si vous mettez en place le Hotspot vous allez pouvoir mettre en place le cryptage de la communication sans que vos utilisateurs ne reçoivent un avertissement sur leurs smartphones, tablettes ou ordinateurs.
Bien sur vous devez avoir un nom de domaine valide pour obtenir un certificat de Let'sEncrypt. Vous pouvez très bien acquérir un nom de domaine auprès d'OVH ou autre et ensuite créer un sous domaine unifi.votredomaine.fr en renseignant dans la partie DNS la valeur A pour pointer vers votre contrôleur. Toutes les infos ici.
Sans certificat valide:
Avec certificat Let'sEncrypt valide:
1- Se connecter en ssh sur le contrôleur
La première étape consiste à se connecter en SSH sur votre contrôleur UniFi installé sous Linux (la CloudKey tourne sous linux)
- Avec OSX terminal fera très bien l'affaire.
- Sous Windows vous pouvez utiliser putty pour effectuer la connexion.
Le nom d'utilisateur par défaut de la CloudKey est : root et le mode de passe : ubnt sur le port 22
2- Installer Certbot-auto pour générer le certificat
Avant toute chose assurez-vous qu'un ping arrive bien sur l'adresse IP de votre contrôleur ; ping unifi.votredomaine.fr et que le port 80 http redirige correctement vers le contrôleur (vous pourrez désactiver la redirection une fois le certificat généré).
Ensuite une fois connecté à votre contrôleur en ligne de commande nous allons récupérer l'utilitaire Certbot-auto afin de générer notre certificat.
Cette dernière ligne configurera certbot et installera également certaines dépendances. Maintenant, en utilisant certbot, nous générons le certificat signé. Lançons donc l'assistant:
Sélectionnez l'option 1 (pour utiliser un serveur Web temporaire), puis entrez votre adresse e-mail (pour que vous obteniez des alertes en cas de problème), acceptez l'accord, puis tapez votre nom de domaine (avec le sous-domaine). Si tout s'est bien passé, vous devriez recevoir un message de félicitations.
3- Charger les certificats obtenu au contrôleur UniFi
Les services Ubiquiti sont basés sur Java et utilisent le keystore Java pour stocker les clés privées et les certificats. Nous devons d'abord générer un certificat PKCS # 12 parmi ceux que nous venons de recevoir:
Maintenant, nous devons charger le certificat PKCS # 12 dans son propre fichier de clés.
Enfin, supprimez les fichiers PKCS # 12 (car ils ont déjà été importés) et redémarrez les services (le cas échéant).
3- Génération d'un certificat tous les mois
Eh oui, un certificat Let'sEncrypt n'est valable que 3 mois, nous devons donc régénérer un certificat avant 3 mois. Nous allons le faire simplement avec la commande cron qui permet de mettre en place des taches planifiées sous linux.
Créer un fichier certificat-unifi.sh comme suit :
Assurez-vous de rendre le script exécutable:
Commençons à modifier le fichier crontab avec sudo crontab -e et mettons les éléments suivants en bas:
Element à ajouter au fichier crontab:
Le tout en video pour vous laisser apprécier...