Автоматизация создания пользователя Openvpn
Прошу помочь со скриптом создания пользователя openvpn на bash. Заранее спасибо.
#!/bin/sh
$openvpn-name = somename;
$openvpn-passwd = 4oLolo;
cd /openvpn/easy-rsa/2.0/;
. ./vars;
./build-key-pkcs12 $openvpn-name;
На параметры ниже(: ) ответ просто enter
Country Name (2 letter code) [US]:
State or Province Name (full name) [CA]:
Locality Name (eg, city) [SanFrancisco]:
Organization Name (eg, company) [Fort-Funston]:
Common Name (eg, your name or your server's hostname) [somename]:
Name [changeme]:
Email Address [[email protected]]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
На эти параметры ответ :y
Certificate is to be certified until May 11 08:32:35 2030 GMT (3650 days)
Sign the certificate? [y/n]: y
1 out of 1 certificate requests certified, commit? [y/n] y
Data Base Updated
Не уверен, что с паролем получится. В идеале, чтобы он генерировался произвольно и сохранялся отдельно в файле.
Enter Export Password: $openvpn-passwd
Verifying - Enter Export Password: $openvpn-passwd
Ключ создан, теперь его необходимо скопировать из /openvpn/easy-rsa/2.0/keys в /home/keys
cp /openvpn/easy-rsa/2.0/keys/$openvpn-name.p12 /home/keys;
chmod -R 755 /home/keys
Ответы (1 шт):
Автор решения: eri
→ Ссылка
openvpnname=somename
mkdir -p keys
cp /openvpn/easy-rsa/2.0/keys/ca.* keys/
openssl req -nodes -newkey rsa:2048 -keyout keys/$openvpnname.key\
-out keys/$openvpnname.csr \
-subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=$openvpnname"
openssl x509 -req -days 360 -in keys/$openvpnname.csr \
-CA keys/ca.crt -CAkey keys/ca.key\
-CAcreateserial -out keys/$openvpnname.crt
dd if=/dev/urandom count=6 bs=1 | base64 > keys/$openvpnname.password
openssl rsa -aes256 -in keys/$openvpnname.key -out keys/$openvpnname.key \
-passout file:keys/$openvpnname.password
Ключи можно сделать через openssl. Если заполнить -subj то он ничего спрашивать не будет. Ключ сохранится без пароля. Новый случайный пароль делаем через urandom и сохраняем в файл. Последняя команда поменяет пароль на ключе.
Ах, да. Конвертнуть в p12
cp keys/$openvpnname.password keys/$openvpnname.p12.password
openssl pkcs12 -export -in keys/$openvpnname.crt -inkey keys/$openvpnname.key \
-out keys/$openvpnname.p12 \
-passin file:keys/$openvpnname.password \
-passout file:keys/$openvpnname.p12.password