安全通信--Easy-RSA

一、Easy-RSA简介

easy-rsa -- 基于shell的简单CA实用程序。
源码地址:https://github.com/OpenVPN/easy-rsa

二、Linux easy-rsa生成证书

1. 下载配置

# 下载
yum install easy-rsa -y
# easy-eas拷贝到工作目录(自定义)
cp -r /usr/share/easy-rsa/3.0.3/* /etc/openvpn/easy-rsa/

# 拷贝vars文件(easy-esa 3.*后的版本没有默认vars文件(vars.example)
cp -p /usr/share/doc/easy-rsa-3.0.3/vars.example /etc/openvpn/easy-rsa/vars
# 配置
set_var EASYRSA_REQ_COUNTRY "xxx" #国家
set_var EASYRSA_REQ_PROVINCE "xxx" #地区
set_var EASYRSA_REQ_CITY "xxx" #城市
set_var EASYRSA_REQ_ORG "xxx" #组织
set_var EASYRSA_REQ_EMAIL "xxx" #邮箱
set_var EASYRSA_REQ_OU  "xxx" 拥有者

三、生成证书

如果openvpn client的配置文件中使用了ns-cert-type
server则要打开此选项,制作server证书时会将一些信息写入证书,如不打开此选项,则openvpn client会提示server certificate verify fail set_var EASYRSA_NS_SUPPORT “yes”
创建两个工作目录(任意),分别代表server端和client端,本示例两工作目录分别为:server、client。以下顺序也是制作证书的流程,在工作目录下按以下顺序操作或使用命令:

1. server端

进入server目录,初始化easy-rsa环境(拷贝 easy-rsa/3.0.3/* 和vars.example 到本目录)

1./easyrsa init-pki
初始化,会在当前目录创建PKI目录,用于存储一些中间变量及最终生成的证书

2 ./easyrsa build-ca
创建根证书,首先会提示设置密码,用于ca对之后生成的server和client证书签名时使用,然后会提示设置Country Name,State or Province Name,Locality Name,Organization Name,Organizational Unit Name,Common Name,Email Address,可以键入回车使用默认的,也可以手动更改

3 ./easyrsa gen-req server nopass
创建server端证书和private key,nopass表示不加密private key,然后会提示设置Country Name,State or Province Name,Locality Name,Organization Name,Organizational Unit Name,Common Name,Email Address,可以键入回车使用默认的,也可以手动更改

4 ./easyrsa sign server server
给server端证书做签名,首先是对一些信息的确认,可以输入yes,然后输入build-ca时设置的那个密码

5 ./easyrsa gen-dh
创建Diffie-Hellman,时间会有点长,耐心等待

client端
进入client目录,初始化easy-rsa环境(拷贝 easy-rsa/3.0.3/* 和vars.example 到本目录)

** ./easyrsa gen-req clientname nopass**
创建client端证书和private key,clientname为自定义字符串,nopass表示不加密private key,然后会提示设置Country Name,State or Province Name,Locality Name,Organization Name,Organizational Unit Name,Common Name,Email Address,可以键入回车使用默认的,也可以手动更改

客户签约
1 ./easyrsa import-req client.req所在路径 clientname
回到server目录,准备签名。client.req路径为上步生成的client.req的绝对路径,clientname为上步的clientname

2 ./easyrsa sign client clientname
给client端证书做签名,首先是对一些信息的确认,输入yes然后输入build-ca时设置的那个密码便成功

注意:
ca、server和client的Common Name最好不要设置为一样,否则openvpn连接时可能会有问题

至此,server和client端证书已制作完毕
openvpn server端:

server/pki/ca.crt <制作server证书的文件夹>
server/pki/private/server.key <制作server证书的文件夹>
server/pki/issued/server.crt <制作server证书的文件夹>
server/pki/dh.pem
openvpn client端:

client/pki/ca.crt <制作server证书的文件夹>
client/pki/issued/client.crt <制作server证书的文件夹>
client/pki/private/client.key <制作client证书的文件夹>

参考资料:
https://blog.csdn.net/qq_38228830/article/details/85789567

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容