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

发布于 2025-01-07 20:05:06 字数 671 浏览 0 评论 0原文

我正在尝试构建一个 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 服务器的密钥库。 (我对此不确定?)

我在这里缺少什么吗?任何帮助将不胜感激。

I am attempting to construct a Glassfish hosted web service that impersonates (for development testing) a WCF hosted web service. I have the WSDL from the WCF hosted service, and I can construct the Java service and Java client from the WCF-hosted WSDL with no issues. The WSDL uses Mutual Certificate Security for data exchange.

The WSDL has an embedded X509 certificate that matches the WCF server's host certificate.

When I try to connect my Java client to the Glassfish-hosted Java service I get - of course - certificate errors.

So what steps do I take to get this to work? I am assuming that:

A) I need to replace the X509 certificate string in the WSDL with the contents of the self-signed Glassfish certificate 's1as' created when I installed Glassfish.

B) Set the Glassfish server SSL parameters for the server Network config to use the default cacerts.jks and keystore.jks certificate stores supplied with the Glassfish installation. Even though I am not using SSL here, I am assuming the server needs to know where its truststore and keystore is to perform mutual certificate security across HTTP.

C) Add the 's1as' server certificate to the truststore for the Java client.

D) Add whatever certificate I was previously using for the original WCF connecting client to the keystore for the Glassfish server. (I am not sure on this one?)

Is there something I am missing here? Any assistance would be much appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巴黎夜雨 2025-01-14 20:05:06

显然,您使用的是消息层安全性,而不是 SSL。因此,通信层未加密,仅加密消息本身。

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

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

你好,吉尔特。

Apparently, you're using message layer security, not SSL. So the communication layer is not encrypted, just the messages themselves.

This is done in Glassfish using the WSIT features. I suggest looking at the Mutual Certificate Security example in the WSIT Tutorial: http://docs.oracle.com/cd/E19316-01/820-1072/ahiem/index.html.

Basically, WSIT uses the keystores in as-install/domains/domain1/config, and you need to specify them by alias name in your WSIT descriptor.

Greets, Geert.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文