一. 前言
本文介绍OpenVPN最后一种连接方式,通过SSL/TLS认证方式连接,也就是利用公钥密码那套:首先生成根证书秘钥、利用根证书秘钥创建根证书、生成服务器私钥,利用根证书签发服务器证书,生成Diffie-Hellman文件(用于密钥交换)、生成客户端私钥,利用根证书签发客户端证书。
注意:OpenVPN的服务器和客户端都拥有自己的私钥和公钥,服务器和客户端是通过验证对方的证书来确定对方的合法性,所以,这里服务器的证书和客户端的证书都是由同一个根证书签发的。
本文仍然以服务器和单个客户端的方式来介绍OpenVPN的SSL/TLS的连接方式。
二. 私钥和证书文件创建
本文以openssl命令来创建所有的文件。建议新建一个文件路径,在这个目录中生成所有文件。
1. 创建根证书私钥文件
openssl genpkey -algorithm RSA -out ca.key -aes256
该命令生成一个根证书的私钥文件,该私钥用aes256对称加密算法加密。
2. 利用私钥创建根证书
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt
该命令生成根证书文件ca.crt。证书利用sha256哈希处理,证书有效期为10年。
3. 创建服务器私钥文件
openssl genpkey -algori