微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

centos5 – OpenSSL握手失败

我们最近被迫将我们的生产云服务器从GoDaddy迁移到Azure,因为GoDaddy正在结束他们的云服务器服务.

我们的一台服务器是运行JasperReports Bitnami堆栈的CentOS 5.7.在迁移过程中,我将所有服务器升级到最新的发行版,并在Ubuntu 12.04LTS上从Azure Bitnami Jasper映像重建Jasper

A在JasperServer上安装了SSL证书并且工作正常

所有新服务器都表现得非常漂亮,现在问题就出现了.

我们在GoDaddy上也有一个专用的CentOS 5.8虚拟服务器(现在),所述服务器上有一系列站点,通过Soap提供来自Jasper的报告.

但是,尝试连接时会出现握手失败

#openssl s_client -connect newjasperserver.com:443
CONNECTED(00000003)
9092:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:583:

和:

#openssl version
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

新服务器正在运行:

#openssl version
OpenSSL 1.0.1c 10 May 2012

经过大量研究后,OpenSSL<之间似乎存在不兼容性. 0.9.8k和OpenSSL 1.0.1. 我发现的选项是:
>将服务器迁移到Azure上的CentOS 6.4服务器(理想,但在政治上很难,不要问为什么)
>就地升级服务器(不支持,我不想在生产服务器上尝试)
>擦拭服务器并用6.4重建它(可能性,但如果我这样做,我会强制选择1)
>从服务器中删除OpenSSL并安装更新的版本(再一次,我在生产服务器上不熟悉的东西)
>安装OpenSSL的第二个实例(我的#2选项,但我不确定如何继续)
>安装OpenSSL的替代品(甚至没有开始研究这个)
>禁用Jasper Server上的强制加密并允许通过http连接(这看起来像我最好的临时修复,直到我可以强制将该服务器迁移到Azure)

有没有我错过的选择? Jasper方面是否有办法允许来自旧版OpenSSL的连接?

您遇到的不兼容性是这样的:

RHEL5上的OpenSSL版本(及其衍生产品)根本不宣传对TLS的支持.它只能执行SSLv3和SSLv2.

RHEL6上的OpenSSL版本(及其衍生产品)支持TLS一直到TLSv1.2.它也有SSLv3,但它想协商TLS.

他们应该仍然能够协商一个会话,因为它们都有(小)常用密码列表,但取决于你为服务器上的密码设置选择了什么(例如,为了减轻BEAST,消除低安全性密码等等.客户端和服务器可能没有任何通用密码可用于通信.

服务器的密码套件将在< Connector ciphers =中设置在Tomcat server.xml中,或者设置在Apache的SSLCipherSuite中,如果它位于Apache后面的话.客户端将使用配置使用的任何内容,否则使用DEFAULT. 解决方案是检查服务器上的密码套件,例如使用openssl密码-v STRING,其中STRING是您在服务器上配置的任何内容,并在客户端上重复相同,然后调整一个或两个,直到密码套件可用,两者都将协商.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。