**Ceci est une ancienne révision du document !**
Table des matières
Renouvellement des certificats VPN
refaire les images
Si vous avez des problèmes pour vous connecter au VPN et que vous voyez l'erreur:
Certificate has key usage 00a0, expects 00a0
dans le fichier /var/log/openvpn-client.log
, c'est que votre certificat a probablement expiré.
Pour vérifier sa date d'expiration, en tant que root
:
- snippet.sh
$ openssl x509 -in /etc/openvpn/keys/user.crt -notext -enddate notAfter=Nov 12 13:42:43 2018 GMT
La date affichée après le noAfter
est la date d'expiration.
Il y a trois procédures possibles pour renouveler le certificat.
App Neutrinet
L'application Neutrinet s'occupe de vérifier chaque nuit si les certificats doivent être renouvelés.
Installation
Vérifiez que vous avez la liste des applications de Neutrinet:
- snippet.sh
yunohost app listlists
Si la liste neutrinet
n'apparaît pas, installez-la via:
- snippet.sh
yunohost app fetchlist -n neutrinet -u https://neutrinet.be/apps.json
À partir de là, vous pouvez soit installer l'application via la console d'admin, soit avec:
- snippet.sh
yunohost app install neutrinet
Mise à jour
Pour mettre à jour cette application:
- snippet.sh
yunohost tools update --apps yunohost tools upgrade --apps neutrinet
À partir d'une brique
Si l'application Neutrinet est déjà installée, vous pouvez forcer la vérification des certificats:
- snippet.sh
cd /opt/neutrinet/renew_cert ./renew_cert_cron.sh -v
Via le script renew_cert
Clônez le dépôt git suivant, sur votre brique internet ou sur votre ordinateur:
- snippet.sh
git clone https://git.domainepublic.net/Neutrinet/renew_cert
Déplacez-vous dans le dossier qui vient d'être créé:
- snippet.sh
cd renew_cert
Créez un environnement virtuel python3. Cela signifie que les paquets python3 qui seront installés n'affecteront pas le reste du système:
- snippet.sh
python3 -m venv ve
Activez ensuite cet environnement:
- snippet.sh
source ve/bin/activate
Installez les dépendances du script:
pip install -r requirements.txt
Enfin, lancez le script via cette commande:
python renew.py <nom d'utilisateur du VPN Neutrinet>
Il vous sera demandé votre mot de passe pour se connecter au VPN de Neutrinet.
Si tout se passe bien, un sous-dosser nommé certs_YYYY-MM-DD_HH:MM:SS
(remplacer les lettres en majuscules par la date et l'heure d'exécution du script) est créé, lequel reprend tous les fichiers de configuration nécessaires au client OpenVPN.
Les fichiers qui nous intéressent sont client.crt
et client.key
, c'est-à-dire la clé publique et la clé privée du certificat.
Ces fichiers doivent remplacer ceux situés dans /etc/openvpn
(cela peut changer en fonction de l'OS).
Sur la brique internet, ces fichiers se trouvent dans /etc/openvpn/keys
Remarque: Avant de remplacer l'un par l'autre, il est conseillé de faire une copie des anciens certificats, juste au cas où. Par exemple, via les commandes suivantes (toujours depuis le dossier renew_cert
):
- snippet.sh
sudo mv /etc/openvpn/keys/user.crt{,.backup} sudo mv /etc/openvpn/keys/user.key{,.backup} sudo mv client.crt /etc/openvpn/keys/user.crt sudo mv client.key /etc/openvpn/keys/user.key
Il ne reste plus qu'à redémarrer le service OpenVPN pour voir s'il fonctionne toujours.
Remarque: Idéalement, assurez-vous d'être connecté à la brique internet en réseau local, c'est-à-dire via son adresse locale (192.168.1.x dans la plupart des cas).
- snippet.sh
sudo systemctl restart openvpn`
Pour vérifier que vous êtes connecté derrière le VPN, vous pouvez lancer la commande:
- snippet.sh
ip addr
Normalement, l'interface tun0
devra apparaître dans la liste.
Via le site user.neutrinet.be
Deuxième méthode (qui parfois demande la patience car actuellement user.neutrinet.be connait des ratés):
La seconde méthode consiste à se connecter en ssh au cubieboard, aller dans le dossier où se trouve la clef du VPN (a priori, il s'agit du fichier /etc/openvpn/neutrinet/client.key ou /etc/openvpn/client.key )
cd /etc/openvpn/neutrinet
Puis de créer une demande de signature de clefs (CSR) pour cette clef
openssl req -new -sha1 -out client.csr -key user.key
Plusieurs questions te seront posées, comme le code pays (BE), la région (Bruxelles, …), la Société etc… auquel le certificat est attaché. Le plus important est le “Cname”, qui est le nom sous lequel tu vas apparaitre pour neutrinet.
Cette commande créé un fichier client.csr, qui contient la demande de signature. Tu peux en voir le contenu en faisant
cat client.csr
Copie ce contenu précieusement, et rends-toi sur https://user.neutrinet.be
Connecte-toi
image
Clique sur users
Attends que cela charge, et quand tu vois ton nom, clique dessus, puis sur “View associated clients”
image
Ensuite clique sur ton certificat (si tu en as plusieurs, il faut utiliser celui qui liste une IPv4 - 80.67.181.x), et choisi l'option “Renew certificate”
image
Il va alors te présenter ton certificat actuel. si tu cliquer sur Rekey, tu auras la possibilité de coller le CSR (le fichier généré plus tôt, que tu as copié), puis de cliquer sur Rekey.
Une fois cette opération terminée, tu verras un bandeau comme ceci:
image
Tu pourras alors cliquer sur “View client details”, puis sur Download config package, qui est un zip qui contient le fichier de certificat qu'il faudra remplacer dans, à priori, /etc/openvpn/neutrinet (voir plus haut, en fonction du dossier qui tu as décidé d'utiliser à la configuration du service).
Voilà, c'est tout!
Liens
- English
- Français
- Nederlands