我们的一台服务器是运行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是您在服务器上配置的任何内容,并在客户端上重复相同,然后调整一个或两个,直到密码套件可用,两者都将协商.