openssl req -new -x509 -keyout ca.key -out ca.crt -config /etc/ssl/openssl.cnf chmod 0600 ca.key
openssl req -new -keyout openvpn-ca.key -out openvpn-ca.csr -config /etc/ssl/openssl.cnf openssl ca -extensions v3_ca -days 3650 -out openvpn-ca.crt -in openvpn-ca.csr -config /etc/ssl/openssl.cnf
cat ca.crt openvpn-ca.crt > allca.crt
openssl req -nodes -new -keyout vpn-server.key -out vpn-server.csr -config /etc/ssl/openssl.cnf
openssl ca -keyfile openvpn-ca.key -cert openvpn-ca.crt -out vpn-server.crt -in vpn-server.csr -extensions server -config /etc/ssl/openssl.cnf
chmod 0600 vpn-server.key
openssl req -nodes -new -keyout client1.key -out client1.csr -config /etc/ssl/openssl.cnf
openssl ca -keyfile openvpn-ca.key -cert openvpn-ca.crt -out client1.crt -in client1.csr -config /etc/ssl/openssl.cnf
chmod 0600 client1.key
Il faut répéter cette étape pour chacun des clients qui vont se connecter au serveur OpenVPN.
” Pour les paranoïaques, soyez attentif à l'omission ci-dessous de l'option -nodes dans la commande openssl. Cela entraînera que chaque clef privée sera chiffrée avec un mot de passe, ce qui rendra la clef sécurisée, même si quelqu'un pénètre dans votre serveur et qu'il vole les fichiers contenant les clef privées. Le mauvais côté de cette approche est qu'à chaque fois que vous lancez OpenVPN, vous devrez tapez le mot de passe. Pour plus d'informations, reportez-vous à l'option –askpass dans la page de man de openvpn. ”
/etc/openvpn/server.conf
# Config ecoute port 1194 proto tcp dev tun0 mode server tls-server persist-key persist-tun # Certificats SSL/TLS ca allca.crt cert vpn-server.crt key vpn-server.key # Chiffrement statique dh dh1024.pem tls-auth ta.key # Configuration fournie aux clients server 10.0.2.0 255.255.255.0 # Gestion de la connexion avec le client keepalive 10 120 tun-mtu 1300 mssfix cipher BF-CBC max-clients 5 client-to-client # Debug ? verb 6 status /var/log/openvpn-status-server.log
Authenticate/Decrypt packet error: cipher final failed : Essayez de changer le cipher utilisé par le serveur. Exemple blowfish : cipher BF-CBCerror=unable to get local issuer certificate : OpenVPN a besoin, pour vérifier la validité des vertificats SSL fournis, d'obtenir l'aboresence complète des certificats SSL. Pour cela, le fichier indiqué par l'option ca doit contenir le certificat du CA et des CA intermédiaires. cat ca.crt openvpn-ca.crt > allca.crtTLS Error: cannot locate HMAC : Si l'un des deux cotés de la connexion utilise l'option tls-auth alors que l'autre bout ne l'utilise pas.