一、生成证书
1. 下载Easy RSA3
下载完并解压后,拷贝一份到/etc/open***和/home/client下
#2.3版本需要独立下载个easy-rsa,该包用来制作ca证书,服务端证书,客户端证书
wget -c https://github.com/Open×××/easy-rsa/archive/master.zip
unzip master.zip
mv easy-rsa-master easy-rsa
2. 生成服务器端证书
cd /etc/open***/easy-rsa/easyrsa3
cp vars.example vars #一般情况下,默认的配置可以满足需求,也可以根据需要修改
./easyrsa init-pki #建立一个空的pki结构,生成一系列的文件和目录
./easyrsa build-ca #创建ca 密码 和 cn那么需要记住
./easyrsa gen-req server nopass #创建服务端证书 common name 最好不要跟前面的cn那么一样
./easyrsa sign server server #签约服务端证书
./easyrsa gen-dh #创建Diffie-Hellman
3. 生成客户端证书
#下面是客户端的证书
#首先创建一个工作的目录
cd /home/
mkdir client && cd client
cp -R ~/easy-rsa/ ./ #这是解压过的easy-rsa 而不是生成了服务端证书的easy-rsa
cd easy-rsa/easyrsa3/
cp vars.example vars
#开始生成
./easyrsa init-pki
./easyrsa gen-req orangleliu #用自己的名字,需要创建一个密码 和 cn name,自己用的 需要记住
4. 客户签约服务
#现在客户端的证书要跟服务端的交互,也就是签约,这样这个用户才能使用此***
#切换到server证书目录下
cd /etc/open***/easy-rsa/easyrsa3/
./easyrsa import-req /home/client/easy-rsa/easyrsa3/pki/reqs/orangleliu.req orangleliu #导入req
./easyrsa sign client orangleliu #用户签约,根据提示输入服务端的ca密码
5. 整理服务端证书
cp /etc/open***/easy-rsa/easyrsa3/pki/ca.crt /etc/open***/keys
cp /etc/open***/easy-rsa/easyrsa3/pki/private/server.key /etc/open***/keys
cp /etc/open***/easy-rsa/easyrsa3/pki/issued/server.crt /etc/open***/keys
cp /etc/open***/easy-rsa/easyrsa3/pki/dh.pem /etc/open***/keys
6. 修改Open×××配置文件
local 192.168.37.129
port 1194
proto udp
dev tun
ca
/etc/open***/keys/
ca.crt
cert
/etc/open***/keys/
server.crt
key
/etc/open***/keys/server.key
# This file should be kept secret
dh
/etc/open***/keys/
dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
comp-lzo
max-clients 100
keepalive 10 120
persist-key
persist-tun
status open***-status.log
verb 3
7. 启动Open×××服务
[root@localhost easyrsa3]# service open*** start
8. 整理client证书
mkdir /home/myclient
cp /etc/open***/easy-rsa/easyrsa3/pki/ca.crt /home/myclient/
cp /etc/open***/easy-rsa/easyrsa3/pki/issued/orangleliu.crt /home/myclient/
cp /home/client/easy-rsa/easyrsa3/pki/private/orangleliu.key /home/myclient/
9. 修改Client配置
# 复制一份client.conf模板命名为client.o***
cp /usr/share/doc/open***-2.3.2/sample/sample-config-files/client.conf client.o***
# 编辑client.o***
vim client.o***
client
dev tun
proto udp
# Open×××服务器的外网IP和端口
remote 203.195.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert orangleliu.crt # client1的证书
key orangleliu.key # client1的密钥
ns-cert-type server
comp-lzo
verb 3
并将client.o*** 拷贝到/home/myclient供客户使用
10. 将客户证书和配置文件移到客户端
将/home/myclient下的文件copy到客户端的conf文件夹下。
二、吊销证书
Open×××使用easy-rsa3吊销证书
cd /etc/open***/easy-rsa/easyrsa3
./easyrsa revoke targetkey(证书名)
./easyrsa gen-crl
其中gen-crl会生成一份吊销证书的名单,放在/etc/open***/easy-rsa/easyrsa3/pki/crl.pem文件里
最后再server.conf文件中增加此项:
crl-verify /etc/open***/easy-rsa/easyrsa3/pki/crl.pem
特别说明:吊销的证书不会立刻被删除文件,所以要再次创建相同的证书则要删除crt文件,通常放在pki/issued文件夹下。