MyException - 我的异常网
当前位置:我的异常网» Web前端 » 监控WebSphere 6.1以及WAS6.1生成跟配置安全证书的

监控WebSphere 6.1以及WAS6.1生成跟配置安全证书的方法

www.MyException.Cn  网友分享于:2015-08-26  浏览:53次
监控WebSphere 6.1以及WAS6.1生成和配置安全证书的方法

注明:本文转载自网上,原文地址(该地址已经不能访问了):
http://hi.baidu.com/lff0305/blog/item/cb80ac3107ccdca05fdf0e3e.html

 

前提:需要通过JMX访问WebSphere的AdminClient API采集监控数据时,如果WebSphere启用了管理安全性,就不能直接访问,而必须配置安全证书。

 

基本上没什么可说的, 使用SOAP, 需要把ws_runtime.jar放到classpath中. 这个ws_runtime.jar可以搜索一下WAS6.1的安装目录, 有两个, 应该都能用.

Properties adminProps = new Properties();
adminProps.setProperty("type", AdminClient.CONNECTOR_TYPE_SOAP);
adminProps.setProperty("host", "192.168.1.100");
adminProps.setProperty("port", "8880");
adminClient = AdminClientFactory.createAdminClient(adminProps);
ObjectName objName = new ObjectName("WebSphere:name=JVM,process=server1,platform=proxy,node=test-e4dd24fa82Node02,j2eeType=JVM,J2EEServer=server1,version=6.1.0.0,type=JVM,mbeanIdentifier=JVM,cell=test-e4dd24fa82Node02Cell,spec=1.0");
Object value = adminClient.getAttribute(objName, "freeMemory");
System.out.println(value);

 

上面紫色的部分不是能通用的, 需要查询下自己的WAS Server.

 

运行结果:

2009-6-2 17:56:33 com.ibm.websphere.management.AdminClientFactory警告: ADMC0046W
2009-6-2 17:56:33 com.ibm.ws.management.connector.interop.JMXClassLoader警告: Could not find tmx4jTransform.jar in null/etc/tmx4jTransform.jar - Interoperability to older versions of WebSphere is disabled
2009-6-2 17:56:34 com.ibm.ws.ssl.config.SSLConfigManager信息: ssl.disable.url.hostname.verification.CWPKI0027I31406800

 

这个很简单, 但是正常运行的前提是WAS6.1 的安全关掉了 (登录不需要密码, 只需要用户名) 如果安全没有关掉, 及其麻烦, 以后详细写~~需要注意的一点: WAS6.1只支持到JDK/JRE5.0, 所以上面的Java环境应该在JDK/JRE5.0中运行. 在JDK/JRE6.0中运行将报错.


继续前面的. 如果启用了安全(WAS6.1默认的), 会出现下面的错误:

-6-4 10:25:49 com.ibm.websphere.management.AdminClientFactory
警告: ADMC0046W2009-6-4 10:25:50 com.ibm.ws.management.connector.interop.JMXClassLoader
警告: Could not find tmx4jTransform.jar in null/etc/tmx4jTransform.jar - Interoperability to older versions of WebSphere is disabled2009-6-4 10:25:50 com.ibm.ws.ssl.config.SSLConfigManager
信息: ssl.disable.url.hostname.verification.CWPKI0027Icom.ibm.websphere.management.exception.ConnectorException: ADMC0016E: 系统无法创建 SOAP 连接器以连接到端口 8880 上的主机 192.168.1.100。

 

如何判断安全已经启用了比较简单 如果WAS6.1 要求输入用户名和密码同时浏览器中查看控制台的协议是HTTPS, 那么就说明安全启用了 (默认的应该是启用的)



 

下面的步骤比较麻烦WAS6.1特殊的因为需要WAS6.1的证书WAS6.0里面这个步骤很简单默认的证书能直接用但是WAS6.1就不行默认的证书不能用必须生成自己的证书并配置到WAS6.1里面.

 

首先进入 <WAS_HOME>AppServer/bin, 运行ikeyman.bat文件进入证书配置工具:



 

点击添加:

 

选择类型JKS, 首先生成KeyStore. 目录设定为c:\test , 名称是store.jks

 

点击 OK , 之后会询问密码这里要输入KeyStre的密码: (密码要记住后面会用到)

 

点击OK, 返回主界面下面列表中很多默认的证书没有用Ctrl-A 全选然后点击右侧的DELETE, 都删掉:

 

删掉后创建自签署证书:

 

在弹出的界面中输入必填的信息基本上都是证书的标识可以填入自己的一些信息:

 

点击OK. 这时KeyStore就创建完毕了这里需要把它导出稍后创建TrustStore:

 

点击右下角的Extract Certificate... , 导出证书这里命名为cert.arm, 放到c:\test下面:

 

OK, 此时KeyStore就生成完毕了下面生成TrustStore. 再次点击New: (这次用的文件名是trust.jks , 同样放到了c:\test下面同样要记住TrustStore的密码)

 

同样把下面没有用的证书删掉然后点击 Add:

 

原创:本人实践过程中这一步有点问题,需要 先在下拉列表中选择“签署者证书”。

 

在弹出的界面中选择刚刚导出的cert.arm文件:

 

这时会询问Label. 随便填点文本:

 

点击OK, TrustStore生成完毕了.

 

这时 查看c:\test 文件夹里面应该有三个文件 : store.jks (KeyStore), cert.arm (导出文件), trust.jks (TrustStore文件)

 

下面的工作就是让WAS6.1应用这些KeyStoreTrustStore。

登录WAS6.1控制台点击 Security - SSL certificate and key management - Key stores and certificates 选项:



 

点击 new :

 

在界面中输入KeyStore的名称(这里用testKeyStore), Path(刚刚创建的, c:\test\store.jks), 密码 (创建的时候使用的密码这里用到了!!) 类型选择JKS:

 

一样的步骤加入TrustStore.jks:

 

这样自己生成的证书就导入到WAS中了下面要让WAS使用它点击证书配置项:

 

点击当前节点:

 

然后选择刚刚创建好的KeyStoreTrustStore, 然后点击"Get Certificate Alias", 获得别名.

 

之后点击OK 保存更改这时, WAS6.1的配置就完毕了重启WAS , 再重新登录控制台就可以在浏览器的证书信息中查看到刚才使用ikeyman生成证书时输入的一些信息了如果使用Firefox等浏览器可能还需要加入一个Exception, 因为这个证书是我们自己生成的不是Firefox认为"安全的"机构生成的所以会报告安全警告Firefox询问的时候加入Exception, 忽略它就行了.

 

下面就是Java程序了

test文件夹拷贝到Java程序运行的机器上这里有两种方法.

 

第一种修改程序:
在创建adminClient前面加入下面的代码定义Keystore 和 TrustStore. 注意程序里面用到了上面生成KeyStore/TrustStore的口令!

adminProps.setProperty(AdminClient.USERNAME, "websphere");
adminProps.setProperty(AdminClient.PASSWORD, "websphere");
adminProps.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true");
adminProps.setProperty("javax.net.ssl.trustStore", "c:/test/trust.jks");
adminProps.setProperty("javax.net.ssl.keyStore", "c:/test/store.jks");
adminProps.setProperty("javax.net.ssl.trustStorePassword", "password for keystore");
adminProps.setProperty("javax.net.ssl.keyStorePassword", "password for truststore");

 

然后在文档(1) 中的程序就能正常运行了.

第二种导入生成的KeyStore.jks 到 Java程序运行的JRE中 就不用运行的时候指定了目标密匙口令JDK/JRE中默认的如果没改过就是changeit; 源密匙口令即上面生成KeyStore的口令 (又一次用到了)

 

之后上面代码里面的青色的部分就可以忽略了注意运行Java程序的JRE/JDK, 应该指定为上面命令行导入目标的JDK/JRE, 即 -destkeystore 中的参数.

 

使用证书监控WebSphere示例代码(本人追加的)

Properties adminProps = new Properties();
adminProps.setProperty(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP);
adminProps.setProperty(AdminClient.CONNECTOR_HOST, "localhost");
adminProps.setProperty(AdminClient.CONNECTOR_PORT, "8880");
adminProps.setProperty(AdminClient.USERNAME, "chenfeng");
adminProps.setProperty(AdminClient.PASSWORD, "chenfeng");
adminProps.setProperty(AdminClient.CACHE_DISABLED, "false");
// WebSphere服务器是否已启用管理安全性
adminProps.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true");
adminProps.setProperty(AdminClient.CONNECTOR_AUTO_ACCEPT_SIGNER, "true");
adminProps.setProperty("javax.net.ssl.trustStore","D:/JavaTools/IBM/MyKey/trust.jks");
adminProps.setProperty("javax.net.ssl.keyStore","D:/JavaTools/IBM/MyKey/store.jks");
adminProps.setProperty("javax.net.ssl.trustStorePassword","chenfeng222");
adminProps.setProperty("javax.net.ssl.keyStorePassword", "chenfeng111");
AdminClient adminClient = AdminClientFactory.createAdminClient(adminProps);
// 这里只是最简单了获取了domainName
String domainName = adminClient.getDomainName();

 

 

后记:终于搞定,转载这么一篇文章那叫一个累啊,二十多张图片,下载再上传,还要排版。不过值得!

 

文章评论

程序员的鄙视链
程序员的鄙视链
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
总结2014中国互联网十大段子
总结2014中国互联网十大段子
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
我的丈夫是个程序员
我的丈夫是个程序员
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序员和编码员之间的区别
程序员和编码员之间的区别
我是如何打败拖延症的
我是如何打败拖延症的
一个程序员的时间管理
一个程序员的时间管理
鲜为人知的编程真相
鲜为人知的编程真相
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
编程语言是女人
编程语言是女人
中美印日四国程序员比较
中美印日四国程序员比较
程序员都该阅读的书
程序员都该阅读的书
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
老程序员的下场
老程序员的下场
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
代码女神横空出世
代码女神横空出世
10个调试和排错的小建议
10个调试和排错的小建议
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
每天工作4小时的程序员
每天工作4小时的程序员
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
为什么程序员都是夜猫子
为什么程序员都是夜猫子
如何成为一名黑客
如何成为一名黑客
 程序员的样子
程序员的样子
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
漫画:程序员的工作
漫画:程序员的工作
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
那些争议最大的编程观点
那些争议最大的编程观点
程序员必看的十大电影
程序员必看的十大电影
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有