文章出自:http://cio.it168.com/a2011/1228/1295/000001295669.shtml
【IT168信息化】在IBM WebSphere应用服务器(WebSphere Application Server)的运行环境中,有时会出现证书过期(certificate expire)的错误。发生错误时管理控制台无法登陆,或者集群环境中能够登录管理控制台,但无法同步或者管理各个结点的情况。出现这个问题不用急,本文以实际的解决方案帮助大家解决这个问题。
确认问题所在
查看后台SystemOut.log日志,有SSLHandshakeException:certificates expire的错误记录。此类问题发生的原因,是由于启用了管理安全性之后,WAS环境中的SSL通讯会涉及到安全证书(certificate),而安全证书是有一定有效期的。安全证书超过有效期之后会失效(expire),从而发生管理的问题。
特别是在集群环境下,部署管理器(dmgr)与各个结点(node)之间的安全通讯,在dmgr和node的配置中都保存有相应的证书,这些证书由于各种原因发生不一致时,也会出现SSLHandshakeException的问题,从而证书过期/证书自动更新导致Dmgr无法正常管理或者同步node。
注:此类问题的详细背景,请参见参考资料1。网上提供了一些标准的解决方案,见参考资料2。
实战WAS证书过期方案解析
本文根据实践经验,介绍了几种简单易行的解决方案尝试解决此类问题,这些方案仅适用于使用WAS默认证书配置对证书没有特殊要求的WAS用户:
方案1:
针对Standalone环境,如果发生证书过期问题:
步骤1:请先备份WAS配置(backupConfig),保留原有证书备份(profile_root目录下的*.p12文件)。
步骤2:给WAS打补丁,推荐最新或者次新补丁(原因参见参考资料1)。如果生产环境比较敏感,此步也可略去。
步骤3:在WAS进程停止的状态下,直接删除掉profile_root目录下的*.p12文件。
步骤4:重启WAS,这时WAS会自动重新产生新的p12文件。测试管理、运行是否正常,最后不要忘记从命令行停止WAS,命令行可能会提示是否接受新的证书,选择接受。再次重启WAS,确认环境是否一切正常。
针对集群环境(Cell环境),如果发生证书过期问题:
步骤1:请先备份Dmgr和各结点上的WAS配置(backupConfig),保留原有证书备份(profile_root目录下的*.p12文件)。
步骤2:给WAS打补丁,推荐最新或者次新补丁(原因参见“使用 WAS V6.1 缺省的自签署证书可能引起的问题”)。如果生产环境比较敏感,此步也可略去。
步骤3:在所有WAS进程停止的状态下,直接删除掉Dmgr和各结点的profile_root目录下的*.p12文件。
步骤4:重启Dmgr,这时Dmgr会自动重新产生新的p12文件。在各结点停止的状态下,分别从结点的profile_root/bin下,发出syncNode命令。然后启动各结点的nodeagent。
步骤5:登陆管理控制台,测试Dmgr对各结点的管理、运行是否正常,最后不要忘记从命令行停止WAS进程,命令行可能会提示是否接受新的证书,选择接受。再次重启WAS,确认环境是否一切正常。
步骤6:(可选)如果环境中还有Web Server,记得产生新的plugin密钥文件并手工拷贝到Web Server所在机器。
方案2:
如果方案1没有生效,通常是在集群环境下由于各种复杂原因造成证书无法同步,此时请尝试方案2。方案2取消了Dmgr和各个结点安全证书的差异性,简化SSL配置,此方案仅适用于使用WAS默认证书配置对证书没有特殊要求的WAS用户。
1.检查WAS补丁,最好是6.1.0.9之上(原因参见参考资料1)。备份Dmgr以及各Node的WAS配置。
2.登陆管理控制台,在dmgr下选择管理端点安全配置。
注意:选择各个结点,一定要取消“覆盖继承的值”选项后选择保存
3. 停止dmgr, node, 删除dmgr和node profile目录下(当然,生产环境必须备份)所有*.p12
4. 启动dmgr,发现在config/cells/xxx下面有key.p12和trust.p12,以这个为蓝本,copy到原来有*.p12的所有地方
5.分别在各个node的profile/bin目录下发一遍syncNode命令,然后再启动nodeagent
6.分别从命令行停止和启动dmgr和各个node agent,如果命令行提示是否接受新的证书,选择接受。确认环境一切正常。
7.(可选)如果环境中还有Web Server,记得产生新的plugin密钥文件并手工拷贝到Web Server所在机器。
总结:本文总结了针对证书过期问题的两种简单易行方案,仅适用于使用WAS默认证书配置对证书没有特殊要求的WAS用户。如果用户对WAS环境的证书有特殊要求,请参见参考资料2。
参考资料:
1. 使用 WAS V6.1 缺省的自签署证书可能引起的问题”http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=1897477D29000
2. “Manually Replacing SSL Certificates in WebSphere Application Server V6.1” http://www-01.ibm.com/support/docview.wss?rs=180&context=SSEQTP&q1=manually+replace+ssl+certificate&uid=swg21305596&loc=en_US&cs=utf-8&lang=en
<!--wordend-->