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

标签 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 证书添加到我的 glassfish 域的 cacerts keystore 中,但它没有用。

我还尝试使用 CN=testdomain.com 创建一个自签名证书并将其添加到 cacerts keystore ,但它也没有用...

那么我该如何配置 Java/Glassfish 来使用这个 Web 服务呢?

最佳答案

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

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

关于java - 无法使用 Java/Glassfish 使用受 SSL 保护的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5573968/

相关文章:

c# - Servicepointmanager 设置 sercurityprotocol 异常

java - 通知中的大量内存使用

delphi - 在服务应用程序中使用数据模块

java - log4j 看不到 log4j.properties 文件

java - java中的HTTP POST请求 - 设置内容长度

python - 使用 PIP 时出现 "SSL: CERTIFICATE_VERIFY_FAILED"错误

node.js - 无法验证第一个证书 - Nodejs TLS

c# - 如何从 WPF 应用程序方法运行 Windows 服务应用程序

java - 在持久化期间忽略 JPA 字段的最简单方法是什么?

java - Java Web 应用程序的多上下文