Java资源网

| JAVA基础 | 环境配置 | JDBC | 线程技术 | Socket编程 | JavaMail | JAVA与XML | 设计模式 | 技术新闻 | Java认证 | 程序人生 软件下载
| JSP&Servlet | Spring | Struts | Hibernate | JBuilder | Eclipse | WebService | EJB技术 | J2ME开发 | 应用服务器 | JXTA | Ajax
Articles search文章搜索
   关键字:
   类 别:
       
New download 最新下载
· [组件]HTML Parser 1.5
· [教程]WebSphere Studio应用教程
· [组件]JDom 1.0
· [工具]Junit3.8.1
· [教程]EJB编程及J2EE系统架构和设计
· [教程]EJB教程
· [教程]J2EE Tutorial中文版
· [教程]Java编程思想2(英文)
· [教程]java编程思想(完整版)
· [教程]Java网络编程
New articles 最新文章
· 设计移动 Web 服务
· 解析XML的时候完全忽略DTD
· 理解XML Schema XML Schema 初步
· 标签库的深入研究
· 提升JSP应用程序的七大绝招
· 如何使用JDOM对XML文件进行操作
· 处理XML字符串中特殊字符
· 利用Digester把XML转换成为Java对象
· 使用WebService 和RMI远程协作
· 使用Axis开发Web Service程序
Articles top 热门文章
· Eclipse基础--plugin插件安装(6644)
· eclipse+tomcat+lomboz的安装配置说明(4774)
· Java程序员就业前景(4584)
· Windows下JAVA环境变量的设置祥解(3788)
· Tomcat下JSP、Servlet和JavaBean环境的配置(3716)
· 使用links方式安装Eclipse插件(3698)
· 一个老程序员的心理话(3533)
· linux下jdk的安装与配置(3459)
· 初学者入门:Structs中基本配置入门(3334)
· Eclipse 运行命令行参数大全(3084)
您的位置:首页>>应用服务器>>SSL配置和解密错误问题
SSL配置和解密错误问题
2006-04-04   来源:Chinaitlab  作者:Chinaitlab

  几个月以前,我遇到一个客户站点,他们刚刚将其服务器从8.1sp1升级到8.1sp4。很明显,升级过程很成功,在测试时也没遇到大的问题。他们的问题是:升级成功后,他们的许多证书都快要到期了。我们很快意识到更新密钥库将是一项浩大的工程,有3个原因:首先,需要更新的证书和密钥库的数量庞大;其次,构建以及整理过程使得在向相应的密钥库中添加新证书时会产生很大的混乱;最后,获得证书签名的过程令人非常痛苦。

  在这项庞大工程完成之后不久,出现了问题的第一个征兆。在峰值负载下,我们发现负载均衡功能不起作用了。集群中的一些服务器在做所有的工作,而其它的服务器则几乎完全是不活动的。我们最初的分析成效不大,所以我们决定使用微软的标准故障排除模式,当天晚上重启所有的WLS和Apache服务器。

  接下来的几天很平静,似乎一切都没问题了。我们认为这个问题只是集群中的偶然故障,因为日志中没有什么记录,在测试环境中也没有发生该问题,所以我们就结束了这个个案。当天晚上由于应用程序中的一些线程需要重启两个活动的服务器。重启的两个服务器并没有出现问题的迹象,但是第二天就出现了上述问题的大范围爆发,而且不仅是在活动的环境中,后来几乎所有最近重启过的其它环境都报告了这一问题。这一次,日志中有了错误记录:

####<18-Nov-2005 15:25:22 o'clock GMT> <Warning>
<Security> <box1> <server1><main><<WLS Kernel>> <>
<BEA-090500><DECRYPT_ERROR alert received from xxxxxxx - x.x.x.x.
A decryption error occurred during the SSL handshake.>

  我们主要关心的是如何减轻活动服务器上的问题。我们猜测重启集群而不是重启单个的服务器就不会出现解密错误,事实证明确实如此。但是,我们发现,如果有服务器脱离了集群(这可能是由很多原因造成的),那么当该服务器试图重新连入集群中时就会出现解密错误。这些“流浪”的服务器会对集群造成很大损害,因为一个或多个Apache服务器可能会认为它仍然是集群中的一部分,并向该服务器发送请求,然后就会被该服务器告知:它是集群中唯一的服务器。在apache插件配置中启动调试后,就可以检测到该行为。我们必须监视weblogic serverlog的BEA-000112和BEA-000113消息,并关闭任何脱离集群的服务器。

  将问题控制在活动服务器上之后,我们试着找出根本原因。主要的疑点集中在密钥库和新证书上。看起来,在使用新证书更新密钥库之后遇到SSL问题并非只是巧合。也许在此过程中我们以某种方式损坏了密钥库。我们使用keytool检查了所有的密钥库、密钥和证书,但是一无所获。

  问题持续了六周,我们不辞辛苦地审计所有环境,检查冗长的日志文件。最终我们发现了问题的根源。在升级到WLS 8.1 sp4的过程中,SSL的TwoWaySSLEnabled属性从“Client Certificate Not Requested”变为“Client Certificate Requested But Not Enforced”。这并不是我们更改的,我们还保留了一个被设置为“Client Certificates Not Requested”的8.1 sp1平台,它没有出现任何升级后的环境所发生的症状。config.xml文档说该属性的值只能是true或false,而管理控制台似乎提供了第三种选项:请求并可能实施一个客户端证书!

  想知道如果删除了WLS域目录再运行域会出现什么情况吗?在我的下一篇文章“Ghost in the Korn Shell”中,我将介绍在发生了这样的不幸事件之后如何部属域。

  --相关文章--
· 开源技术:tomcat5.0下配置ssl (2007-04-17)
· 开源技术基础:TOMCAT的用法 (2007-04-17)
· 开源技术之Tomcat数据源配置总结 (2007-04-17)
· 实例讲解配置之——TOMCAT集群配置 (2007-04-17)
· 实例讲解Apache+tomcat+ssl配置 (2007-04-17)
· 如何同时启动多个Tomcat服务器 (2007-04-17)

版权所有©2005-2006 JAVA资源网 渝ICP备05007591号 虚拟主机 | 关于我们 | 联系方式 | 广告业务 | 网站地图 | 友情链接