首页 文章

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

提问于
浏览
1

我正在尝试使用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 回答

  • 1

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

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

  • 0

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

  • -1

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

相关问题