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

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

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

具体错误如下

wKiom1bNc5OQYPu-AAC8DCfycRE487.png

1
2
3
4
5
6
7
8
9
10
11
12
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不好用。关键是这个错误是大错误被小错误还掩盖了一下,所以很难被发现。

解决方法:

1
2
[root@localhost open***] # export NSS_HASH_ALG_SUPPORT=+MD5
[root@localhost open***] # export OPENSSL_ENABLE_MD5_VERIFY=1

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

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

wKiom1bNdOfzYj2iAAA3iUN1OgY647.png

保存退出后

1
2
[root@localhost open***] # systemctl daemon-reload
[root@localhost open***] # systemctl restart NetworkManager.service

wKiom1bNdYnDyGMGAAB1KOfvEw8314.png

成功连接open***!

本文出自 “TYP” 博客,请务必保留此出处http://typ520.blog.51cto.com/9201592/1744719