Can';t使用Java/Glassfish使用受SSL保护的Web服务

Can';t使用Java/Glassfish使用受SSL保护的Web服务,java,ssl,service,glassfish,Java,Ssl,Service,Glassfish,我正在尝试使用https安全下托管的Web服务 我正在使用Java和glassfish,我得到以下错误: 信息:HTTP传输错误:javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:找不到与testdomain.com匹配的名称 问题是这个特定的服务器用于测试,它使用的是生产证书(CN=domain.com) 我已经使用keytool-importcert将domain.com证书添加到我的gla

我正在尝试使用https安全下托管的Web服务

我正在使用Java和glassfish,我得到以下错误:

信息:HTTP传输错误:javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:找不到与testdomain.com匹配的名称

问题是这个特定的服务器用于测试,它使用的是生产证书(CN=domain.com)

我已经使用keytool-importcert将domain.com证书添加到我的glassfish域的cacerts密钥库中,但它不起作用

我还尝试用CN=testdomain.com创建一个自签名证书,并将其添加到cacerts密钥库中,但也没有成功


那么,如何配置Java/Glassfish来使用此Web服务呢?

自签名证书需要安装在Java客户端的密钥存储中。应使用dns解析testdomain.com。

自签名证书需要与其私钥一起安装在Web服务的密钥库中,并导入Glassfish的信任库。

服务器证书的CN应与客户端连接的URL中的域相匹配。如果仍然不起作用,我会检查IP是否也映射到这个主机名(反向DNS)。验证它的是客户机。如果要绕过此主机名验证,请参阅本文中的示例代码:


原则是向服务客户端代理提供自己的HostnameVerifier。

客户端与此无关。在这种情况下,Glassfish是客户。你的第二条评论毫无意义:域名是通过DNS解析的。