java – 使用Glassfish / Metro模拟WCF安全Web服务器的问题

我正在尝试构建一个Glassfish托管的Web服务(用于开发测试)一个WCF托管的Web服务.我有WCF托管服务的WSDL,我可以从WCF托管的WSDL构建 Java服务和 Java客户端,没有任何问题. WSDL使用相互证书安全性进行数据交换.

WSDL具有与WCF服务器的主机证书相匹配的嵌入式X509证书.

当我尝试将我的Java客户端连接到Glassfish托管的Java服务时,我当然会得到证书错误.

那么我要采取什么步骤才能使之工作?我假设:

A)我需要将WSDL中的X509证书字符串替换为安装Glassfish时创建的自签名Glassfish证书“s1as”的内容.

B)将服务器网络配置的Glassfish服务器SSL参数设置为使用Glassfish安装附带的认cacerts.jks和keystore.jks证书存储.即使我在这里不使用SSL,我假定服务器需要知道其信任库和密钥库在HTTP之间执行相互证书安全性的位置.

C)将’s1as’服务器证书添加到Java客户端的信任库.

D)将以前用于原始WCF连接客户端的任何证书添加到Glassfish服务器的密钥库. (我不知道这个吗?)

有没有我在这里失踪的东西?任何帮助将不胜感激.

解决方法

显然,您正在使用消息层安全性,而不是SSL.所以通信层没有加密,只是消息本身.

这是在Glassfish使用WSIT功能完成的.我建议您参考WSIT教程:http://docs.oracle.com/cd/E19316-01/820-1072/ahiem/index.html中的互证证书安全性示例.

基本上,WSIT使用as-install / domains / domain1 / config中的密钥库,您需要在WSIT描述符中通过别名指定它们.

Greets,Geert.

相关文章

应用场景 C端用户提交工单、工单创建完成之后、会发布一条工...
线程类,设置有一个公共资源 package cn.org.chris.concurre...
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量