以往为了跟一些服务器之间进行数据加密传输,往往需要用到对方提供的公钥证书及私钥证书,大家在编码的时候为了方便就把证书全部集中存放在了工程里,编码时就在代码里写死证书路径,类型,以及证书访问的密码。这样做就存在着安全风险,首先是密码是明文的,其次就是证书到期问题。为了提高证书管理安全性及便利使用性,我们需要对所有使用的证书进行集中管理,随时对证书状态进行监控。
以下实例代码是以JSSEHelper方式实现,websphere 6.1+jdk1.5测试通过
com.ibm.websphere.ssl.JSSEHelper jsseHelper = com.ibm.websphere.ssl.JSSEHelper.getInstance();
Properties sslProps = jsseHelper.getProperties("CellDefaultSSLSettings"); //was证书基于cell级
System.out.println("www.am361.cn打印出cell级证书库列表1:" + sslProps.toString());
Properties newSslProps = new Properties();
newSslProps.setProperty("com.ibm.ssl.trustStore", sslProps.getProperty("com.ibm.ssl.trustStore")); //从was中获取信任签署者证书库名称
newSslProps.setProperty("com.ibm.ssl.trustStorePassword", sslProps.getProperty("com.ibm.ssl.trustStorePassword")); //从was中获取信任签署者证书库密码
newSslProps.setProperty("com.ibm.ssl.trustStoreType", sslProps.getProperty("com.ibm.ssl.trustStoreType")); //从was中获取信任签署者证书库类型
newSslProps.setProperty("com.ibm.ssl.keyStore", sslProps.getProperty("com.ibm.ssl.keyStore")); //从was中获取私钥证书库名称
newSslProps.setProperty("com.ibm.ssl.keyStorePassword", sslProps.getProperty("com.ibm.ssl.keyStorePassword")); //从was中获取私钥证书库密码
newSslProps.setProperty("com.ibm.ssl.keyStoreType", sslProps.getProperty("com.ibm.ssl.keyStoreType")); //从was中获取私钥证书库类型
System.out.println("www.am361.cn打印出从cell级证书库列表中获取所需要的证书列表1:" + newSslProps.toString());
jsseHelper.setSSLPropertiesOnThread(newSslProps); //降获取到的证书内容以线程的方式进行应用
与服务器 MQ 通讯的完整 java 程序
http://javatd.iteye.com/blog/386224
以下实例代码是以JSSEHelper方式实现,websphere 6.1+jdk1.5测试通过
com.ibm.websphere.ssl.JSSEHelper jsseHelper = com.ibm.websphere.ssl.JSSEHelper.getInstance();
Properties sslProps = jsseHelper.getProperties("CellDefaultSSLSettings"); //was证书基于cell级
System.out.println("www.am361.cn打印出cell级证书库列表1:" + sslProps.toString());
Properties newSslProps = new Properties();
newSslProps.setProperty("com.ibm.ssl.trustStore", sslProps.getProperty("com.ibm.ssl.trustStore")); //从was中获取信任签署者证书库名称
newSslProps.setProperty("com.ibm.ssl.trustStorePassword", sslProps.getProperty("com.ibm.ssl.trustStorePassword")); //从was中获取信任签署者证书库密码
newSslProps.setProperty("com.ibm.ssl.trustStoreType", sslProps.getProperty("com.ibm.ssl.trustStoreType")); //从was中获取信任签署者证书库类型
newSslProps.setProperty("com.ibm.ssl.keyStore", sslProps.getProperty("com.ibm.ssl.keyStore")); //从was中获取私钥证书库名称
newSslProps.setProperty("com.ibm.ssl.keyStorePassword", sslProps.getProperty("com.ibm.ssl.keyStorePassword")); //从was中获取私钥证书库密码
newSslProps.setProperty("com.ibm.ssl.keyStoreType", sslProps.getProperty("com.ibm.ssl.keyStoreType")); //从was中获取私钥证书库类型
System.out.println("www.am361.cn打印出从cell级证书库列表中获取所需要的证书列表1:" + newSslProps.toString());
jsseHelper.setSSLPropertiesOnThread(newSslProps); //降获取到的证书内容以线程的方式进行应用
与服务器 MQ 通讯的完整 java 程序
http://javatd.iteye.com/blog/386224