linux – ¿Automatización de claves de compilación de OpenVPN easy-rsa?

Pregunta:

Tengo muchas claves para generar para el servidor VPN de mis clientes. Siempre que uso easy-rsa para generar las claves como esta:

./build-key client1

Hay un resultado con una serie de preguntas. Todas las preguntas tienen respuestas predeterminadas que se definen en el archivo vars .

Generating a 1024 bit RSA private key
............................................++++++
.......................++++++
writing new private key to 'client1.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [US]:
State or Province Name (full name) [CO]:
Locality Name (eg, city) [Denver]:
Organization Name (eg, company) [mycompany]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [client1]:
Email Address [it@mycompany.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'US'
stateOrProvinceName   :PRINTABLE:'CO'
localityName          :PRINTABLE:'Denver'
organizationName      :PRINTABLE:'mycompany'
commonName            :PRINTABLE:'client1'
emailAddress          :IA5STRING:'it@mycompany.com'
Certificate is to be certified until Jan  3 20:16:04 2038 GMT (9999 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Con todo, tengo que presionar manualmente las siguientes teclas:

ENTER
ENTER
ENTER
ENTER
ENTER
ENTER
ENTER
ENTER
y
ENTER
y
ENTER

Básicamente, solo acepto todas las respuestas predeterminadas y digo "sí" a las dos últimas preguntas. ¿Hay alguna bandera -force o -quiet o algo que pueda usar con build-key ? Si no es así, ¿hay trucos de scripting o bash que pueda usar para hacer esto cada vez? No puedo encontrar nada al respecto en ninguna página de manual.

Respuesta:

Si observa la fuente de build-key , encontrará que está llamando a pkitool . Escribí un contenedor para agrupar las claves de cilent y los archivos de configuración de openvpn apropiados en un tarball que luego podría dar a mis usuarios:

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

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım