Outils pour utilisateurs

Outils du site


fr:vpn:renew-cert

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
fr:vpn:renew-cert [2019/10/13 15:01] – modification externe 127.0.0.1fr:vpn:renew-cert [2020/11/29 18:24] – [Installation] harpo-bzh
Ligne 1: Ligne 1:
-====== Renouvellement du certificat ======+Renouvellement du certificat VPN
  
-TODOrefaire les images+Si vous avez des problèmes pour vous connecter au VPN et que vous voyez l'erreur:
  
-Si je ne me trompe ces méthodes sont reprisent dans l'application [neutrinet_ynh](https://github.com/Neutrinet/neutrinet_ynh). +```sh 
-Pour mettre à jour cette application :+Certificate has key usage  00a0, expects 00a0 
 +``` 
 +dans le fichier `/var/log/openvpn-client.log`, c'est que votre certificat a probablement expiré.
  
-`$ sudo yunohost app upgrade neutrinet -u https://github.com/Neutrinet/neutrinet_ynh`+Pour vérifier sa date d'expiration, en tant que `roottapez la commande
  
-Si non, et que vous voyez l'erreur `Certificate has key usage  00a0, expects 00a0dans le fichier `/var/log/openvpn-client.log`, votre certificat a probablement expiré+```sh 
-Pour vérifier sa date d'expiration, en tant que `root`:+openssl x509 -in /etc/openvpn/keys/user.crt -enddate 
 +``
 + 
 +qui donne ...
  
 ```sh ```sh
-$ openssl x509 -in /etc/openvpn/keys/user.crt -enddate +notAfter=Nov 27 13:49:23 2020 GMT
-notAfter=Nov 12 13:42:43 2018 GMT+
 -----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
-... +....
------END CERTIFICATE-----+
 ``` ```
 +La date affichée après le `noAfter` est la date d'expiration.
  
-La date affichée après le `noAfterest la date d'expiration +FIXME la commande suivante avec `-notextretourne une erreur `Unrecognized flag notext` 
 +```sh 
 +$ openssl x509 -in /etc/openvpn/keys/user.crt -notext -enddate
  
-Il y a trois procédures possibles pour renouveler le certificat.+notAfter=Nov 12 13:42:43 2018 GMT 
 +```
  
-# Directement à partir d'une brique 
  
-Pour le renouveler, en tant que `root`:+Il y a quatre méthodes possibles pour renouveler le certificat.
  
 +## 1. App Neutrinet
 +
 +L'[[fr:cube:apps-neutrinet|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:
 ```sh ```sh
-$ cd /opt/neutrinet/renew_cert +yunohost app list
-$ ve/bin/python renew_from_cube.py+
 ``` ```
  
-# Procédure par le script Renew_cert de Bram +Si la liste `neutrinet` n'apparaît pas, installez-la via: 
 +```sh 
 +yunohost app fetchlist -n neutrinet -u https://neutrinet.be/apps.json 
 +``` 
 +FIXME ATTENTION : la commande est "deprecated" et retourne `error: unrecognized arguments: -n neutrinet -u https://neutrinet.be/apps.json`
  
-La procédure est donc de cloner le dépôt git sur ton cubie boardou d'ailleurs sur n'importe quel ordinateur:+À partir de vous pouvez soit installer l'application via la console d'admin, soit avec: 
 +```sh 
 +yunohost app install neutrinet 
 +```
  
-`git clone https://github.com/neutrinet/renew_cert`+### Mise à jour
  
-(dans le dossier qui te convient le mieux) +Pour mettre à jour cette application: 
-Et tu rentres dans le sous-dossier qui vient d'être créé:+```sh 
 +yunohost tools update --apps 
 +yunohost tools upgrade --apps neutrinet 
 +```
  
-`cd renew_cert`+## 2. À partir d'une brique
  
-Ensuite, tu crées un environnement virtuel python (ce qui veut dire que les paquets pythons que tu installeras n'affecteront pas le reste de ton système) :+__Si l'application Neutrinet est déjà installée__, vous pouvez forcer la vérification des certificats: 
 +```sh 
 +cd /opt/neutrinet/renew_cert 
 +./renew_cert_cron.sh -v 
 +```
  
-`virtualenv ve`+## 3. Via le script renew_cert
  
-Puistu actives cet environnement:+Clônez le dépôt git suivantsur votre brique internet ou sur votre ordinateur: 
 +```sh 
 +git clone https://git.domainepublic.net/Neutrinet/renew_cert 
 +```
  
-`source ve/bin/activate`+Déplacez-vous dans le dossier qui vient d'être créé: 
 +```sh 
 +cd renew_cert 
 +```
  
-Enfin, tu installes les dépendances du script (peut faire une petite erreur sur Jessie, mais fonctionne quand même):+Créez un environnement virtuel python3. Cela signifie que les paquets python3 qui seront installés n'affecteront pas le reste du système: 
 +```sh 
 +python3 -m venv ve 
 +```
  
-`pip install -r requirements.txt`+Activez ensuite cet environnement: 
 +```sh 
 +source ve/bin/activate 
 +```
  
-Pour finir, tu peux enfin lancer le script en lui-même en tapant cette commande+Installez les dépendances du script
 +``` 
 +pip install -r requirements.txt 
 +```
  
- `python renew_local.py TON-NOM-D'UTILISATEUR-NEUTRINET TON-MOT-DE-PASSE`+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.
  
-Je te conseillerais de mettre un espace avant cette commande, et ce afin d'éviter qu'elle ne se trouve dans ton historique de commandes.état +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.
-Le script prendra quelques minutest'informant des différentes étapes qu'il passe (Login, Get client data, Generate new cert using openssl, See if I already have a cert, I already have a cert, let's update it, Put new cert online et enfin Download new config si tout s'est bien passé).+
  
-Tu auras alors dans le dossier renew_certun sous-dosser appelé certs_2017-07-xx_XX:XX:XX (ou les derniers X dépendant de la date et l'heure d'exécution du script), qui reprend tous les fichiers de configuration demandé par ton 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.
  
-Ce sont essentiellement les fichiers client.crt et client.key qui t'intéresse, et qui doivent remplacer les fichiers du même nom situé (pour autant que tu utilises la configuration standard openvpn de Debian), dans /etc/openvpn/ ou dans /etc/openvpn/neutrinet +Ces fichiers doivent remplacer ceux situés dans `/etc/openvpn` (cela peut changer en fonction de l'OS). 
-Avant de remplacer l'un par l'autre, je suggèrerais de faire une copie des anciens, au cas où. +Sur la brique internet, ces fichiers se trouvent dans `/etc/openvpn/keys`
-Cela donnerait quelque chose comme (toujours en étant dans le dossier renew_cert):+
  
 +**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`):
 ```sh ```sh
-sudo mv /etc/openvpn/neutrinet/client.crt /etc/openvpn/neutrinet/client.crt.backup +sudo mv /etc/openvpn/keys/user.crt{,.backup} 
-sudo mv /etc/openvpn/neutrinet/client.key /etc/openvpn/neutrinet/client.key.backup +sudo mv /etc/openvpn/keys/user.key{,.backup} 
-sudo mv client.crt /etc/openvpn/neutrinet/client.crt +sudo mv client.crt /etc/openvpn/keys/user.crt 
-sudo mv client.key /etc/openvpn/neutrinet/client.key+sudo mv client.key /etc/openvpn/keys/user.key
 ``` ```
  
-OU (apparement dans centains cas -à définir- userremplace client.)+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).
 +```sh
 +sudo systemctl restart openvpn`
 ``` ```
-sudo mv /etc/openvpn/neutrinet/user.crt /etc/openvpn/neutrinet/user.crt.backup + 
-sudo mv /etc/openvpn/neutrinet/user.key /etc/openvpn/neutrinet/user.key.backup +Pour vérifier que vous êtes connecté derrière le VPN, vous pouvez lancer la commande: 
-sudo mv user.crt /etc/openvpn/neutrinet/user.crt +```sh 
-sudo mv user.key /etc/openvpn/neutrinet/user.key+ip addr
 ``` ```
  
 +Normalement, l'interface `tun0` devra apparaître dans la liste.
  
-Après quoi, il ne te resterait plus qu'à re-démarrer le service VPN pour tester qu'il fonctionne toujours (idéalement, assure-toi de te connecter au cubie localement, via son adresse locale (192.168.1.x dans la plupart des cas).+## 4. Via le site user.neutrinet.be
  
 +Cette méthode demande parfois de la patience car user.neutrinet.be peut connaître des ratés.
  
-`sudo systemctl restart openvpn`+Connectez-vous en ssh à votre brique internet, puis allez dans le dossier où se trouve la clé du VPN (il s'agit normalement du fichier `/etc/openvpn/keys/user.key`): 
 +```sh 
 +cd /etc/openvpn/keys 
 +```
  
-# Procédure manuelle et via le site user.neutrinet.be+Créez une demande de signature de clés (CSR) pour cette clé: 
 +```sh 
 +openssl req -new -newkey rsa:4096 -nodes -keyout user.key 
 +```
  
-Deuxième méthode (qui parfois demande la patience car actuellement user.neutrinet.be connait des ratés):+Plusieurs questions vous 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 qui sera utilisé par Neutrinet pour savoir à qui appartient le certificat.
  
-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 )+**Remarque**: Il est recommandé de mettre votre adresse e-mail pour le Cname.
  
-`cd /etc/openvpn/neutrinet`+Cette commande crée un fichier `client.csr`, qui contient la demande de signature. Vous pouvez afficher son contenu avec: 
 +```sh 
 +cat client.csr 
 +```
  
-Puis de créer une demande de signature de clefs (CSR) pour cette clef+Copiez ce contenu, et rendez-vous sur https://user.neutrinet.be
  
-`openssl req -new -sha1 -out client.csr -key user.key`+{{ :fr:vpn:renew_cert-01-login.png?direct&600 |}}
  
-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.+Connectez-vous
  
-Cette commande créé un fichier client.csr, qui contient la demande de signature. Tu peux en voir le contenu en faisant+{{ :fr:vpn:renew_cert-02-dashboard.png?direct&600 |}}
  
-`cat client.csr`+Cliquez sur `Users`
  
-Copie ce contenu précieusement, et rends-toi sur https://user.neutrinet.be+{{ :fr:vpn:renew_cert-03-users.png?direct&600 |}}
  
-Connecte-toi+Attendez que cela charge, et quand vous voyez votre nom, cliquez dessus
  
-**image**+{{ :fr:vpn:renew_cert-04-user.png?direct&600 |}}
  
-Clique sur users+Cliquez sur `View associated clients`
  
 +{{ :fr:vpn:renew_cert-05-clients.png?direct&600 |}}
  
-Attends que cela chargeet quand tu vois ton nom, clique dessus, puis sur "View associated clients"+Cliquez sur votre certificat (si vous en avez plusieursil faut utiliser celui avec une IPv4 - 80.67.181.x)
  
 +{{ :fr:vpn:renew_cert-06-client.png?direct&600 |}}
  
-**image**+Choisissez l'option `Renew certificate`
  
-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"+{{ :fr:vpn:renew_cert-07-certificate.png?direct&600 |}}
  
 +Le certificat actuel s'affiche alors à l'écran. Cliquez sur `Rekey`, puis collez le contenu du CSR (le fichier que vous aviez copié plus tôt).
  
-**image**+Cliquez sur le bouton `Rekey` pour confirmer.
  
-Il va alors te présenter ton certificat actuel. si tu cliquer sur Rekeytu 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éevous verrez le bandeau suivant:
  
-Une fois cette opération terminée, tu verras un bandeau comme ceci:+{{ :fr:vpn:renew_cert-08-rekey.png?direct&600 |}}
  
-**image** +Vous pouvez alors cliquer sur `View client details`, puis sur `Download config package`.
- +
-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).+
  
 +Cela va télécharger un fichier zip qui contient les fichiers de certificat. Dans le dossier `/etc/openvpn/keys` de votre brique internet, copiez le fichier `client.crt` vers `/etc/openvpn/keys/user.crt`.
  
 Voilà, c'est tout! Voilà, c'est tout!
- 
-# Liens 
- 
-- https://github.com/Neutrinet/neutrinet_ynh 
-- https://github.com/neutrinet/renew_cert 
  
fr/vpn/renew-cert.txt · Dernière modification : 2024/06/19 08:32 de hgo