#!/bin/bash
DIR_RSA=/srv/EasyRSA-3.0.8
DIR_CLI=/srv/client-configs
KEY_DIR=${DIR_CLI}/keys
OUTPUT_DIR=${DIR_CLI}/files
BASE_CONFIG=${DIR_CLI}/base.conf
# Проверка параметра
if [ -n "${1}" ]; then
# Проверка на уникальность имени кдиента
if [ -e "${DIR_RSA}/pki/reqs/${1}.req" ]; then
echo "${1} уже существует, выберите другое имя клиента"
else
# Генерация ключей и копирование в нужные каталоги
cd ${DIR_RSA}
./easyrsa build-client-full ${1} nopass
cp ./pki/private/${1}.key ${DIR_CLI}/keys/
cp ./pki/issued/${1}.crt ${DIR_CLI}/keys/
# Считываем все ключи и записываем в итоговый файл конфига
cat ${BASE_CONFIG} \
<(echo -e '\n') \
${KEY_DIR}/ca.crt \
<(echo -e '\n') \
${KEY_DIR}/${1}.crt \
<(echo -e '\n') \
${KEY_DIR}/${1}.key \
<(echo -e '\n') \
${KEY_DIR}/ta.key \
<(echo -e '') \
> ${OUTPUT_DIR}/${1}.ovpn
echo "Забери свое гавно тут: ${OUTPUT_DIR}/"
fi
else
echo "Usage: $0 [ client_name ]"
echo "Нужно запускать скрипт с параметром имя создаваемого клиента"
fi