EASY RSA 3快速指南
Easy RSA是一个openvpn的子项目,用于创建安全网络所需的基础设施(PKI)和密钥,证书等。在Linux中,您如果安装好EASYRSA,可运行: ./easyrsa -h来获取相关的帮助。
这里列举一些常用的命令以帮助您快速搭好PKI和签发相关的证书。 最新的下载地址在:https://github.com/OpenVPN/easy-rsa/releases 截止到本文创建时,最新版本为V3.0.6: 下载后,在用户目录中解压:
tar xvf EasyRSA-3.0.4.tgz
根据vars.example来生成模板,提供关键参数
cp vars.example vars 找到下面这些并移除注释,修改成自己所需的参数: #set_var EASYRSA_REQ_COUNTRY "US" #set_var EASYRSA_REQ_PROVINCE "California" #set_var EASYRSA_REQ_CITY "San Francisco" #set_var EASYRSA_REQ_ORG "Copyleft Certificate Co" #set_var EASYRSA_REQ_EMAIL "me@example.net" #set_var EASYRSA_REQ_OU "My Organizational Unit" #set_var EASYRSA_CERT_EXPIRE 1825 改成五年,默认证书有效期只有三年
1、在选定的系统中创建新的PKI和CA
./easyrsa init-pki (该命令生成pki目录,密钥和证书请求子目录,以及一个openssl配置文件) ./easyrsa build-ca
2、在openvpn服务端或客户端初始化PKI并生成密钥对和签名请求,通常如果CA根服务器和openvp服务端,在同一台电脑,就不需要再初始化PKI,而是直接生成密钥和签名请求。然后导入到CA。
./easyrsa init-pki (如果和CA同一个服务器且目录相同,无需再执行) ./easyrsa gen-req EntityName nopass(在服务端或客户端执行) ./easyrsa import-req /tmp/path/to/import.req EntityName (在CA服务器上执行) ./easyrsa sign-req client EntityName nopass(在CA服务器上执行) 在一个现成的pki里,一般只需gen-req和sign-req就可以生成证书了
3、把签名的证书传到对应的服务器上,包括CA证书(CA.crt),如果对应服务器之前还没有的话。这样客户端服务器上就有所需的密钥对,签名证书和CA证书。
- 在CA服务器上作废证书
./easyrsa revoke EntityName ./easyrsa gen-crl
- 生成 Diffie-Hellman (DH)
作为TLS服务器可能会用到它,通常在VPN服务端的PKI生成。
./easyrsa gen-dh
- 查看证书或签名请求
./easyrsa show-req EntityName ./easyrsa show-cert EntityName
- 更改密钥
./easyrsa show-req EntityName ./easyrsa show-cert EntityName
也可以在命令行参数中用"nopass"取消密钥。