GNU/Linux >> Tutoriels Linux >  >> Linux

Automatisation de la clé de construction OpenVPN easy-rsa ?

Solution 1 :

essayez --lot drapeau

./build-key --batch client1

Solution 2 :

Si vous regardez la source de build-key , vous verrez qu'il appelle pkitool . J'ai écrit un wrapper pour regrouper les clés du client et les fichiers de configuration openvpn appropriés dans une archive que je pourrais ensuite donner à mes utilisateurs :

#!/bin/bash

client=$1

if [ x$client = x ]; then
    echo "Usage: $0 clientname"
    exit 1
fi

if [ ! -e keys/$client.key ]; then
    echo "Generating keys..."
    . vars
    ./pkitool $client
    echo "...keys generated." 
fi

tarball=./keys/$client.tgz

if [ ! -e $tarball ]; then
    echo "Creating tarball..."
    tmpdir=/tmp/client-tar.$$
    mkdir $tmpdir
    cp company.ovpn $tmpdir/company.ovpn
    cp keys/ca.crt $tmpdir 
    cp keys/$client.key $tmpdir/client.key
    cp keys/$client.crt $tmpdir/client.crt
    tar -C $tmpdir -czvf $tarball .
    rm -rf $tmpdir
    echo "...tarball created" 
else
    echo "Nothing to do, so nothing done. (keys/$client.tgz already exists)" 
fi

Solution 3 :

La nouvelle version d'EasyRSA se présente actuellement sous la forme d'un binaire unique. Pour automatiser la construction d'une clé client, vous pouvez désormais utiliser le fichier "vars" (placez-le simplement dans le même répertoire que le binaire easyrsa) :

if [ -z "$EASYRSA_CALLER" ]; then
    echo "You appear to be sourcing an Easy-RSA 'vars' file." >&2
    echo "This is no longer necessary and is disallowed. See the section called" >&2
    echo "'How to use this file' near the top comments for more details." >&2
    return 1
fi

set_var EASYRSA        "$PWD"
set_var EASYRSA_OPENSSL        "openssl"
set_var EASYRSA_PKI            "$EASYRSA/pki"
set_var EASYRSA_DN     "org"

set_var EASYRSA_REQ_COUNTRY    "Country"
set_var EASYRSA_REQ_PROVINCE   "Province"
set_var EASYRSA_REQ_CITY       "City"
set_var EASYRSA_REQ_ORG        "Org Ltd"
set_var EASYRSA_REQ_EMAIL      "[email protected]"
set_var EASYRSA_REQ_OU         "Infrastructure"

set_var EASYRSA_KEY_SIZE       2048

set_var EASYRSA_ALGO           rsa

set_var EASYRSA_CA_EXPIRE      3650
set_var EASYRSA_CERT_EXPIRE    365
set_var EASYRSA_CRL_DAYS       180

set_var EASYRSA_TEMP_FILE      "$EASYRSA_PKI/extensions.temp"

et utilisez le binaire d'EasyRSA :

./easyrsa build-client-full client1 nopass

Solution 4 :

La chose qui me vient le plus rapidement à l'esprit est expect; il vous permet d'automatiser ces types d'interactions en ligne de commande.

Solution 5 :

J'ai eu le même problème.

La solution que j'ai trouvée était :

echo -en "\n\n\n\n\n\n\n\ny\ny\n" | ./build-key client1


Linux
  1. Comment installer OpenVPN sur CentOS/RHEL 8

  2. Caractères génériques à l'intérieur des guillemets ?

  3. Amazon Aws (amazon Ami) Vous installez Openvpn ?

  4. Qu'est-ce que Echo $ ? Faire??

  5. Comment configurer un serveur OpenVPN sur Debian 10

16 exemples de commandes Echo sous Linux

Comment installer le serveur et le client OpenVPN avec Easy-RSA 3 sur CentOS 7

Comment installer le serveur et le client OpenVPN avec Easy-RSA 3 sur CentOS 8

Comment installer OpenVPN sur AlmaLinux 8, Centos 8 ou Rocky Linux 8

Comment faire écho dans le fichier

OpenVPN client à client