记录一下 openVpn 的踩坑笔记。
$ OVPN_DATA="/docker/openvpn/ovpn-data-focusone"$ echo $OVPN_DATA; # 测试
执行以下命令,将 IP_ADDRESS
替换为当前部署服务器的公网 IP 地址。
$ docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://IP_ADDRESS
执行以下命令初始化 PKI(Public Key Infrastructure,公钥基础设施),生成的配置会存储在 kpi
目录下。
$ docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
此命令执行后会自动创建 CA(Certificate Authority,证书颁发机构) 的根证书(公钥证书),会要求输入一个根证书密码。请牢记该密码,后面生成客户端证书签名时要用。
$ docker run -v $OVPN_DATA:/etc/openvpn -d --name openvpn -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn
执行以下命令,将 USERNAME
替换为用户名称:
$ docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full $USERNAME nopass
其中 nopass
可选,表示生成不带密码的客户端证书,与带密码的证书在功能上没有区别。
命令执行后,如果未设置免密,会要求输入两次客户端证书密码,最后输入根证书密码签名。
# 1. 删除用户证书$ docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa revoke $USERNAME# 2. 更新证书数据库docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa gen-crl update-db
$ docker restart openvpn