无法使用Java / Glassfish使用受SSL保护的Web服务

时间:2011-04-06 23:00:16

标签: java ssl service glassfish

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

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

INFO: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服务呢?

3 个答案:

答案 0 :(得分:1)

服务器证书的CN应与客户端连接的URL中的域匹配。如果仍然不起作用,我会检查IP是否也映射到此主机名(反向DNS)。验证它的是客户端。如果您想绕过此主机名验证,请参阅我的文章中的示例代码:http://jakubneubauer.wordpress.com/2011/09/06/java-webservice-over-ssl/

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

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

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