Derniers Articles
Installation certificat SSL Let's Encrypt sur serveur UniFi
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.
wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto ./certbot-auto
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:
./certbot-auto certonly
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:
sudo openssl pkcs12 -export -inkey /etc/letsencrypt/live/unifi.votredomaine.fr/privkey.pem -in /etc/letsencrypt/live/unifi.votredomaine.fr/fullchain.pem -out /home/ubuntu/cert.p12 -name ubnt -password pass:temppass
Maintenant, nous devons charger le certificat PKCS # 12 dans son propre fichier de clés.
sudo keytool -importkeystore -deststorepass aircontrolenterprise -destkeypass aircontrolenterprise -destkeystore /var/lib/unifi/keystore -srckeystore /home/ubuntu/cert.p12 -srcstoretype PKCS12 -srcstorepass temppass -alias ubnt -noprompt
Enfin, supprimez les fichiers PKCS # 12 (car ils ont déjà été importés) et redémarrez les services (le cas échéant).
sudo rm /home/ubuntu/cert.p12 sudo /etc/init.d/unifi restart
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 :
# Demande de certificat auprès de let'sencrypt /home/ubuntu/certbot-auto renew --quiet --no-self-upgrade # Convertir certificat au format PKCS #12 format openssl pkcs12 -export -inkey /etc/letsencrypt/live/unifi.votredomaine.fr/privkey.pem -in /etc/letsencrypt/live/unifi.votredomaine.fr/fullchain.pem -out /home/ubuntu/cert.p12 -name ubnt -password pass:temppass # Chargez-le dans le keystore java keytool -importkeystore -deststorepass aircontrolenterprise -destkeypass aircontrolenterprise -destkeystore /var/lib/unifi/keystore -srckeystore /home/ubuntu/cert.p12 -srcstoretype PKCS12 -srcstorepass temppass -alias ubnt -noprompt # Nettoyage rm /home/ubuntu/cert.p12 /etc/init.d/unifi restart
Assurez-vous de rendre le script exécutable:
sudo chmod +x /home/ubuntu/certificat-unifi.sh
Commençons à modifier le fichier crontab avec sudo crontab -e et mettons les éléments suivants en bas:
sudo crontab -e
Element à ajouter au fichier crontab:
0 0 12 1 * ? /home/ubuntu/certificat-unifi.sh
Le tout en video pour vous laisser apprécier...