38 lines
1.2 KiB
Bash
38 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
# Check for client name argument
|
|
if [ -z "$1" ]; then
|
|
echo "Usage: $0 <clientname>"
|
|
exit 1
|
|
fi
|
|
|
|
CLIENT_NAME=$1
|
|
EASY_RSA_PATH=~/openvpn-ca # Change to your Easy-RSA path
|
|
BASE_CONFIG=/etc/openvpn/client_base.conf # Change to your base client config path
|
|
|
|
# Navigate to Easy-RSA directory
|
|
cd $EASY_RSA_PATH
|
|
|
|
# Load vars
|
|
source vars
|
|
|
|
# Build the client key and certificate
|
|
./build-key --batch $CLIENT_NAME
|
|
|
|
# Create client config directory if it doesn't exist
|
|
mkdir -p ~/client-configs/files
|
|
|
|
# Create the client configuration file
|
|
cp $BASE_CONFIG ~/client-configs/files/$CLIENT_NAME.ovpn
|
|
|
|
# Add client authentication details to the config file
|
|
echo -e "<ca>" >> ~/client-configs/files/$CLIENT_NAME.ovpn
|
|
cat $EASY_RSA_PATH/keys/ca.crt >> ~/client-configs/files/$CLIENT_NAME.ovpn
|
|
echo -e "</ca>\n<cert>" >> ~/client-configs/files/$CLIENT_NAME.ovpn
|
|
cat $EASY_RSA_PATH/keys/$CLIENT_NAME.crt >> ~/client-configs/files/$CLIENT_NAME.ovpn
|
|
echo -e "</cert>\n<key>" >> ~/client-configs/files/$CLIENT_NAME.ovpn
|
|
cat $EASY_RSA_PATH/keys/$CLIENT_NAME.key >> ~/client-configs/files/$CLIENT_NAME.ovpn
|
|
echo -e "</key>" >> ~/client-configs/files/$CLIENT_NAME.ovpn
|
|
|
|
echo "Client configuration for $CLIENT_NAME created successfully."
|