最近搞openvpn 在阿里云windows server 2008上面搭建的openvpn服务器(本来想在linux上做的没办法领导要求)。

我用本地虚拟机测试连接openvpn没有任何问题 Centos 6.5 和windows 7 都可以连接Openvpn

唯独Centos  7 不行出现如下报错!这个问题解决了一天的时间 百度 Google 各大论坛 QQ群都解决不了!

具体错误如下

Centos 7连接opevpn提示错误解决方法_openvpn

d Feb 24 17:08:08 2016 VERIFY ERROR: depth=0, error=certificate signature failure: C=US, ST=CA, L=SanFrancisco, O=Open×××, OU=changeme, CN=changeme, name=changeme, emailAddress=mail@host.domain
Wed Feb 24 17:08:08 2016 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Wed Feb 24 17:08:08 2016 TLS Error: TLS object -> incoming plaintext read error
Wed Feb 24 17:08:08 2016 TLS Error: TLS handshake failed
Wed Feb 24 17:08:08 2016 Fatal TLS error (check_tls_errors_co), restarting
Wed Feb 24 17:08:08 2016 SIGUSR1[soft,tls-error] received, process restarting
Wed Feb 24 17:08:13 2016 Attempting to establish TCP connection with [AF_INET] [nonblock]
Wed Feb 24 17:08:14 2016 TCP connection established with [AF_INET]
Wed Feb 24 17:08:14 2016 TCPv4_CLIENT link local: [undef]
Wed Feb 24 17:08:14 2016 TCPv4_CLIENT link remote: [AF_INET]
Wed Feb 24 17:08:14 2016 VERIFY ERROR: depth=0, error=certificate signature failure: C=US, ST=CA, L=SanFrancisco, O=Open×××, OU=changeme, CN=changeme, name=changeme, emailAddress=mail@host.domain
Wed Feb 24 17:08:14 2016 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed


上网查很多人说是时间不同步我同步服务器的时间也没有解决问题!后来才发现问题所在

主要原因是Centos 7移除了Openssl的MD5支持

openssl仍然默认以md5作为散列算法并且可以正确识别md5散列算法,所以就悲剧了,只有cenots7不好用。关键是这个错误是大错误被小错误还掩盖了一下,所以很难被发现。

解决方法:

[root@localhost openvpn]# export NSS_HASH_ALG_SUPPORT=+MD5
[root@localhost openvpn]# export OPENSSL_ENABLE_MD5_VERIFY=1

编辑  vim /usr/lib/systemd/system/NetworkManager.service

添加Environment="OPENSSL_ENABLE_MD5_VERIFY=1 NSS_HASH_ALG_SUPPORT=+MD5"

Centos 7连接opevpn提示错误解决方法_openvpn_02

保存退出后

[root@localhost openvpn]# systemctl daemon-reload
[root@localhost openvpn]# systemctl restart NetworkManager.service

Centos 7连接opevpn提示错误解决方法_Centos7_03

成功连接openvpn!