如何创建 VPN(OpenVPN)来修复证书验证?

如何创建 VPN(OpenVPN)来修复证书验证?

好的,我会解释我做了什么……最后是问题。谢谢!

为了设置我的 VPN,我在服务器和客户端计算机上安装了 OpenVPN。在服务器上,我在文件 /etc/openvpn/easy-rsa/vars 中配置了证书颁发机构,编辑了以下行:

export KEY_COUNTRY=”ES”
export KEY_PROVINCE=”M”
export KEY_CITY=”Madrid”
export KEY_ORG=”My Organization”
export KEY_EMAIL=”[email protected]

然后我生成了证书:

cd /etc/openvpn/easy-rsa/ ln -s openssl-1.0.0.cnf openssl.cnf 源变量 ./clean-all ./build-ca

创建了 cerver 证书:

./build-key-server myServer

Diffie Hellman 参数到服务器

./build-dh

复制证书和密钥 /etc/openvpn

cd 密钥/ cp myServer.crt myServer.key ca.crt dh1024.pem /etc/openvpn/

创建客户端证书

cd /etc/openvpn/easy-rsa/源变量./build-key client1

将此证书复制到客户端计算机并将其从服务器中删除:

/etc/openvpn/ca.crt

/etc/openvpn/easy-rsa/keys/cliente.crt

/etc/openvpn/easy-rsa/keys/cliente.key

将 /etc/openvpn/server.conf 编辑为我的文件名

ca ca.crt
cert myServer.crt
key myServer.key
dh dh1024.pem

/etc/init.d/openvpn 重启

已验证 tun0 是否存在

ifconfig tun0

在 /etc/sysctl.conf 上启用 ip_forward 参数,以便程序包可以流动

网.ipv4.ip_forward=1

还启用了虚拟网络掩码,以便客户端可以访问所有远程机器

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

并保存了 ip 表配置,这样它们就不会在重启时消失

我们正在获取文件配置

sudo sh -c “iptables-save > /etc/iptables.rules”

编辑 /etc/network/interfaces 添加接口(本例中为 eth0)

准备 iptables-restore < /etc/iptables.rules

在客户端中,我安装了 OpenVPN 并使用以下证书编辑了 /etc/openvpn 中的 client.conf 文件:ca.cert、client1.key、c​​lient1.conf 得到以下 client.conf 文件:

client
dev tun
proto udp
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3

然后重新启动:

/etc/init.d/openvpn 重启

当我想使用 ifconfig tun0 来验证接口 tun0 是否存在时,却找不到。

因此我检查了客户端机器上的错误日志,发现了这个错误:

VERIFY ERROR: depth=0, error=unable to get local issuer certificate: /C=Es/ST=M/L=Madrid/O=xxx/OU=xxx/CN=myServer/name=xxx/[email protected]
TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
user openvpn[7984]: TLS Error: TLS object -> incoming plaintext read error
user openvpn[7984]: TLS Error: TLS handshake failed

我再次创建了密钥,并在 client.conf 文件中添加了证书的完整路径,但仍然不起作用。还尝试禁用所有防火墙,但由于该错误,仍然无法连接到我的服务器。

另一件重要的事情是我的服务器是 ubuntu 12.04 和客户端 CentOS 6.3

我看到我找到了我的服务器但连接仍然没有完成......

我应该怎么办??

如果需要更多配置文件,请告诉我

答案1

在您的错误消息中:

error=unable to get local issuer certificate: 

此消息意味着您的客户端配置中的这些行指向错误的文件:

cert client1.crt
key client1.key

在构建客户端密钥时,您说:

/etc/openvpn/easy-rsa/keys/cliente.crt

您需要更新客户端配置以匹配实际生成的文件.crt的名称.key

相关内容