1. 获取最新软件包

openvpn提供了OpenVPN的核心 easy-rsa包含了一些有用的密钥管理脚本 dnsmasq是当我们的OpenVPN所在的主机将扮演客户端的路由器时会用到的域名服务器

https://github.com/OpenVPN/openvpn/archive/v2.4.6.tar.gz https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz

2. OpenVPN安装

安装依赖

yum install lzo-devel autoconf pam-devel  automake libtool

编译安装

autoreconf -i -v -f
./configure --prefix=/usr/local/openvpn/
make
make install

3. EasyRsa 配置

3.1.1. 软件目录配置

tar xf EasyRSA-3.0.4.tgz
mv EasyRSA-3.0.4.tgz /usr/local/openvpn/EasyRSA
cd /usr/local/openvpn/EasyRSA
cp vars.example vars
vim vars

3.1.2. 编辑vars文件

set_var EASYRSA_REQ_COUNTRY "CN"
set_var EASYRSA_REQ_PROVINCE "ZheJiang"
set_var EASYRSA_REQ_CITY "HangZhou"
set_var EASYRSA_REQ_ORG "test ORG"
set_var EASYRSA_REQ_EMAIL "admin@zhaowenyu.com"
set_var EASYRSA_REQ_OU "vinnyzhao"

4. 证书制作

4.1.1. 自建CA认证体系

1、初始化证书管理目录 进入/etc/openvpn/easy-rsa/easyrsa3/目录初始化:

./easyrsa init-pki

这一步会使用当前目录下vars文件作为配置文件进行初始化,并在当前目录下生产一个pki目录

2、创建根证书

./easyrsa build-ca

这一步是构建CA根证书,要求输入一个证书加密密码和一个common name(证书名称)字符串 注意:在上述部分需要输入PEM密码 PEM pass phrase,输入两次,此密码必须记住,不然以后不能为证书签名。还需要输入common name 通用名,这个你自己随便设置个独一无二的。

4.1.2. 服务端证书构建

1、创建服务器端证书请求,生成证书请求文件

./easyrsa gen-req server nopass

创建服务端证书,需要输入证书的一个名称(common name),最好是有意义的名称,例如:business_server1。这样就会在pki目录生产对应的服务端证书. 该过程中需要输入common name,随意但是不要跟之前的根证书的一样

2、CA认证颁发服务端证书

./easyrsa sign server server

该命令中.需要你确认生成,要输入yes,还需要你提供我们当时创建CA时候的密码。如果你忘记了密码,那你就重头开始再来一次吧。

3、创建Diffie-Hellman,确保key穿越不安全网络的命令:

./easyrsa gen-dh

生成高强度的秘钥,需要几分钟。

4.1.3. 创建客户端证书

1、创建客户端正确请求文件

./easyrsa gen-req client001

需要输出一个密码

2、导入req

./easyrsa import-req /root/client/easy-rsa/easyrsa3/pki/reqs/qingliu.req qingliu

没有创建对应的client目录的时候,需要导入,如果是在和CA、Server同一个目录时,不用导入了。

3、签约证书

./easyrsa sign client  client001

这里生成client所以必须为client,client001要与之前导入名字一致

上面签约证书跟server类似,就不截图了,但是期间还是要输入CA的密码

以上步骤生成的pki文件

pki
├── ca.crt
├── certs_by_serial
│ ├── 442DAC7F32744739A2172C31B6610834.pem
│ └── E2C7B58F473A55C20BDF8E64E5CCCC40.pem
├── dh.pem
├── index.txt
├── index.txt.attr
├── index.txt.attr.old
├── index.txt.old
├── issued
│ ├── client001.crt
│ └── server.crt
├── private
│ ├── ca.key
│ ├── client001.key
│ └── server.key
├── reqs
│ ├── client001.req
│ └── server.req
├── serial
└── serial.old
cp pki/ca.crt pki/private/server.key pki/issued/server.crt pki/dh.pem /etc/openvpn/server/
cp pki/ca.crt pki/private/client001.key pki/issued/client001.crt /etc/openvpn/client/
cp /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn/

修改配置文件 使用绝对路径

ca server/ca.crt
cert server/server.crt
key server/server.key # This file should be kept secret

# Diffie hellman parameters.
# Generate your own with:
# openssl dhparam -out dh2048.pem 2048
dh server/dh2048.pem

https://linux.cn/article-3706-1.html

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-01-02 10:58:02

results matching ""

    No results matching ""