脚本介绍
- 在服务端`/etc/openvpn/`目录下存放该脚本`client.sh`
脚本运行
运行方式
./client.sh client_name
client_name填你想输入的客户端名称,例如
输入yes,和相应的ca密钥
运行成功如图,生成的压缩包在clients目录下
**window客户端需要注意**:脚本生成的文件需要把原来的client.crt和client.key删除,然后将新生成的客户端名字如liufang2所对应的文件修改client.crt和client.key详情如下图
**修改完成之后,把上面所有的配置文件拷贝到C:\Program Files\OpenVPN\config 目录或者C:\Users\liuf13\OpenVPN\config目录下即可~**
脚本具体实现
#!/bin/bash
#生产客户端的证书和密钥,客户端名称可以自己配置
client_name=$1
cd /etc/openvpn/easy-rsa;
./easyrsa build-client-full ${client_name} nopass;
#创建文件夹,将所有文件复制到该路径下
cd /etc/openvpn/;
mkdir ${client_name};
cd ${client_name};
cp /etc/openvpn/easy-rsa/pki/ca.crt .
cp /etc/openvpn/client/client.conf .;
#做字符串拼接,将client_name和对应的密钥和证书的后缀名作拼接
a=".crt"
crt="${client_name}${a}"
cp /etc/openvpn/easy-rsa/pki/issued/${crt} .;
b=".key"
key="${client_name}${b}"
cp /etc/openvpn/easy-rsa/pki/private/${key} .
cp /etc/openvpn/easy-rsa/ta.key .
#将密钥和证书作软链接
orgin_crtname="client.crt"
ln -s ${crt} ${orgin_crtname};
orgin_keyname="client.key"
ln -s ${key} ${orgin_keyname};
#将所有文件打包到clients目录下(clients目录如果没有,自己创建一个)
cd ..
dir=${client_name}
c=".tar.gz"
dir="${dir}${c}"
tar -zcvf ./clients/${dir} ${client_name}
#删除原先的文件夹
rm -rf ${client_name}