GNU/Linux >> LINUX-Kenntnisse >  >> Linux

OpenVPN easy-rsa Build-Key-Automatisierung?

Lösung 1:

versuchen Sie es mit --batch Flagge

./build-key --batch client1

Lösung 2:

Wenn Sie sich die Quelle von build-key ansehen , werden Sie feststellen, dass es pkitool aufruft . Ich habe einen Wrapper geschrieben, um die Schlüssel des Clients und die entsprechenden OpenVPN-Konfigurationsdateien in einem Tarball zu bündeln, den ich dann meinen Benutzern geben kann:

#!/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

Lösung 3:

Die neue Version von EasyRSA kommt jetzt als einzelne Binärdatei. Um das Erstellen eines Clientschlüssels zu automatisieren, können Sie jetzt die Datei „vars“ verwenden (legen Sie sie einfach in dasselbe Verzeichnis wie die easyrsa-Binärdatei):

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"

und verwenden Sie die Binärdatei von EasyRSA:

./easyrsa build-client-full client1 nopass

Lösung 4:

Das, was mir am schnellsten einfällt, ist expect; Es ermöglicht Ihnen, diese Art von Befehlszeileninteraktionen zu automatisieren.

Lösung 5:

Ich hatte das gleiche Problem.

Die Lösung, die ich gefunden habe, war:

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


Linux
  1. So installieren Sie OpenVPN auf CentOS/RHEL 8

  2. ${!foo} Und Zsh?

  3. Amazon Aws (Amazon Ami) Openvpn installieren?

  4. Was bedeutet Echo $? Tun??

  5. Export in .bashrc verwenden?

16 Beispiele für Echo-Befehle unter Linux

So installieren Sie OpenVPN-Server und -Client mit Easy-RSA 3 unter CentOS 7

So installieren Sie OpenVPN-Server und -Client mit Easy-RSA 3 auf CentOS 8

So installieren Sie OpenVPN auf AlmaLinux 8, Centos 8 oder Rocky Linux 8

Wie Echo in Datei

OpenVPN-Client-zu-Client