从WebSphere连接到SSL证书安全Web服务

时间:2011-08-22 05:42:48

标签: java ssl websphere

我们有WAS(Websphere Application Server)7 Web服务,这是代理其他方SSL安全WebService的代理。

当在WAS之外使用我们的WebService(客户端)时(例如使用eclipse),它将连接没有问题,但不在WAS内部。我还创建了测试服务,该服务使用函数来打印其他方WebService(Server)wsdl。

public void testSSL() {
  URL u;
  InputStream is = null;
  DataInputStream dis;
  String s;

  try {

    System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
    System.setProperty("javax.net.ssl.keyStore", "/home/...");  //path to jks certificate
System.setProperty("javax.net.ssl.keyStorePassword", "******");
System.setProperty("javax.net.ssl.requireClientAuth", "true");

u = new URL("https://...?WSDL");
is = u.openStream();         // throws an IOException
dis = new DataInputStream(new BufferedInputStream(is));

while ((s = dis.readLine()) != null) {
    System.out.println(s);
}
  } catch (MalformedURLException mue) {
 System.out.println("Ouch - a MalformedURLException happened.");
 mue.printStackTrace();
 System.exit(1);
  } catch (IOException ioe) {
 System.out.println("Oops- an IOException happened.");
 ioe.printStackTrace();
 System.exit(1);
  } finally {
 try {
    is.close();
 } catch (IOException ioe) {
    // just going to ignore this one
 }
  } // end of 'finally' clause
} 

1 个答案:

答案 0 :(得分:0)

您的问题可能是因为Websphere服务器不信任远程服务器的证书。如果您的本地测试是在Windows上,则它将使用与Internet Explorer使用的密钥库相同的密钥库。

不要尝试使用System.SetProperty()在Java代码中配置密钥库,而是在Security>下查看Websphere管理控制台。 SSL证书和密钥管理>钥匙商店和证书

可能是您的Java代码被服务器自己的配置覆盖了。

如果你发布了例外情况,你会更容易提出建议。