Configurer un serveur OpenVPN sur un EdgeRouterX Ubiquiti

Configurer un serveur OpenVPN sur un EdgeRouterX Ubiquiti

Vous avez un EdgeRouterX Ubiquiti (EdgeOS) et vous voulez pouvoir accéder à votre réseau local depuis l'extérieur, en toute sécurité ? Dans ce tuto, on monte pas à pas un serveur OpenVPN directement sur le routeur, puis on configure les clients Windows et macOS pour s'y connecter. À la fin, vous saurez aussi comment renouveler vos certificats quand ils arrivent à expiration.

Pré-requis : un accès CLI à l'EdgeRouter (via le bouton dédié de l'interface web ou un client SSH comme PuTTY), et quelques bases en réseau.

Étape 1 : Vérifier la date et l'heure du routeur

Les certificats qu'on va générer ont une durée de validité calculée à partir de l'horloge du routeur. Première chose à faire :

show date

Si la date est fausse, corrigez-la avant d'aller plus loin.

Étape 2 : Passer en root

sudo su

Étape 3 : Générer la clé Diffie-Hellman

openssl dhparam -out /config/auth/dh.pem -2 2048

Étape 4 — Aller dans le répertoire des scripts SSL

cd /usr/lib/ssl/misc

Étape 5 — Créer l'autorité de certification (CA)

./CA.pl -newca

Le script vous demande une phrase secrète et quelques informations (pays, organisation...). Notez bien la phrase secrète, vous en aurez besoin pour signer chaque certificat.

À savoir : sur les firmwares EdgeOS antérieurs à la 2.0.0, le script s'appelle CA.sh au lieu de CA.pl.

Étape 6 : Copier le certificat racine

cp demoCA/cacert.pem /config/auth
cp demoCA/private/cakey.pem /config/auth

Étape 7 : Générer la demande de certificat serveur

./CA.pl -newreq

Donnez-lui le Common Name server.

Étape 8 : Signer le certificat serveur

./CA.pl -sign

Confirmez avec y.

Étape 9 : Déplacer et renommer les fichiers serveur

mv newcert.pem /config/auth/server.pem
mv newkey.pem /config/auth/server.key

Étape 10 : Générer un certificat pour le premier client

Même principe : nouvelle demande, signature, puis renommage.

./CA.pl -newreq
./CA.pl -sign

mv newcert.pem /config/auth/client1.pem
mv newkey.pem /config/auth/client1.key

Étape 11 : Répéter pour chaque client supplémentaire

./CA.pl -newreq
./CA.pl -sign

mv newcert.pem /config/auth/client2.pem
mv newkey.pem /config/auth/client2.key

Étape 12 : Retirer le mot de passe des clés ⚠️

Cette étape est obligatoire côté serveur. Sans elle, l'interface vtun0 affichera « TBD » sur le dashboard et le tunnel ne démarrera jamais. Côté client, c'est facultatif (sinon il faudra saisir un mot de passe à chaque connexion).

openssl rsa -in /config/auth/server.key -out /config/auth/server-no-pass.key
openssl rsa -in /config/auth/client1.key -out /config/auth/client1-no-pass.key
openssl rsa -in /config/auth/client2.key -out /config/auth/client2-no-pass.key

Étape 13 : Remplacer les anciennes clés

mv /config/auth/server-no-pass.key /config/auth/server.key
mv /config/auth/client1-no-pass.key /config/auth/client1.key
mv /config/auth/client2-no-pass.key /config/auth/client2.key

Étape 14 : Ouvrir les droits de lecture des clés clients

chmod 644 /config/auth/client1.key
chmod 644 /config/auth/client2.key

Étape 15 : Vérifier le contenu du dossier

ls -l /config/auth

Vous devez retrouver : cacert.pem, cakey.pem, dh.pem, server.pem/server.key, et les paires .pem/.key de chaque client.

Étape 16 : Sortir du mode root

exit

Étape 17 : Passer en mode configuration

configure

Étape 18 : Autoriser le port OpenVPN dans le pare-feu

set firewall name WAN_LOCAL rule 30 action accept
set firewall name WAN_LOCAL rule 30 description openvpn
set firewall name WAN_LOCAL rule 30 destination port 1194
set firewall name WAN_LOCAL rule 30 protocol udp

Étape 19 : Configurer l'interface du tunnel

set interfaces openvpn vtun0 mode server
set interfaces openvpn vtun0 server subnet 172.16.1.0/24
set interfaces openvpn vtun0 server push-route 192.168.1.0/24
set interfaces openvpn vtun0 server name-server 192.168.1.1

Étape 20 : Associer les certificats à l'interface

set interfaces openvpn vtun0 tls ca-cert-file /config/auth/cacert.pem
set interfaces openvpn vtun0 tls cert-file /config/auth/server.pem
set interfaces openvpn vtun0 tls key-file /config/auth/server.key
set interfaces openvpn vtun0 tls dh-file /config/auth/dh.pem

Étape 21 : Activer le DNS forwarding sur l'interface

set service dns forwarding listen-on vtun0

Étape 22 : Valider et sauvegarder

commit ; save

💡 Les étapes 17 à 22 peuvent s'enchaîner directement, une fois en mode configuration.

Votre serveur OpenVPN est opérationnel !


Configurer le client Windows

  1. Allez dans C:\Program Files\OpenVPN\config\
  2. Créez un fichier er.ovpn
  3. Transférez depuis l'EdgeRouter (via WinSCP par exemple) les fichiers cacert.pem, client1.pem et client1.key
  4. Complétez er.ovpn avec ce contenu (remplacez <server> par l'IP publique ou le nom d'hôte) :
client
dev tun
proto udp
remote <server> 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
ca cacert.pem
cert client1.pem
key client1.key
  1. (Optionnel) Pour rediriger tout le trafic Internet via le VPN, ajoutez :
redirect-gateway def1
  1. Lancez la connexion depuis votre client OpenVPN Windows.

Configurer le client macOS

  1. Créez le dossier et le fichier de config :
mkdir ~/Desktop/config
touch ~/Desktop/config/er.ovpn
  1. Récupérez les fichiers via SCP :
scp username@<ip-address>:/config/auth/cacert.pem ~/Desktop/config
scp username@<ip-address>:/config/auth/client1.pem ~/Desktop/config
scp username@<ip-address>:/config/auth/client1.key ~/Desktop/config
  1. Complétez er.ovpn avec le même contenu que pour Windows.
  2. Connectez-vous avec un client comme Tunnelblick.

Bonus : renouveler les certificats avant expiration

Les certificats générés via CA.pl sont valables un an par défaut. Vérifiez la date d'expiration avec :

openssl x509 -in /config/auth/server.pem -noout -enddate

Ce qu'il ne faut surtout PAS refaire :

  • Régénérer la CA (CA.pl -newca) → invaliderait tous les certificats déjà signés
  • Régénérer la clé Diffie-Hellman → elle n'expire pas
  • Toucher à la config de vtun0 ou au pare-feu → les noms de fichiers ne changent pas

Pour renouveler le certificat serveur :

sudo su
cd /usr/lib/ssl/misc
./CA.pl -newreq
./CA.pl -sign

mv newcert.pem /config/auth/server.pem
mv newkey.pem /config/auth/server.key

openssl rsa -in /config/auth/server.key -out /config/auth/server-no-pass.key
mv /config/auth/server-no-pass.key /config/auth/server.key

configure
commit ; save
exit

💡 Si l'interface ne reprend pas les nouveaux fichiers, désactivez/réactivez vtun0 ou redémarrez le service OpenVPN.

Pour renouveler un certificat client expiré : même logique (CA.pl -newreq puis -sign), renommage des fichiers, retrait du mot de passe, puis retransfert vers le poste client. Le fichier er.ovpn lui-même n'a pas besoin d'être modifié.


Pour résumer

Élément À refaire ?
Certificat racine (CA) Non
Clé Diffie-Hellman Non
Certificat serveur Oui (chaque année)
Certificat client Oui, si expiré
Pare-feu / interface vtun0 Non
Fichier .ovpn Non (sauf changement d'IP)

Et voilà, vous avez un accès VPN chiffré et fiable à votre réseau local, géré entièrement depuis votre EdgeRouter sans dépendre d'un service tiers ;)

Partager cet article :

Articles récents

Pourquoi depuis fin 2025 vos mails Free ne fonctionnent plus dans Outlook ?
Pourquoi depuis fin 2025 vos mails Free ne fonctionnent plus dans Outlook ?

16 June 2026

&nbsp; Depuis fin 2025, de nombreux utilisateurs Free constatent un probl&egrave;me identique : leurs mails fonctionnent parfaitement sur le webmail Free ou depuis un smartphone, mais le client Outlo...

Lire la suite
Exposer un VirtualHost local en permanence avec ngrok
Exposer un VirtualHost local en permanence avec ngrok

12 June 2026

Configurer un service autonome pour ngrok sur un serveur Linux

Lire la suite