ssl - 出现此错误 : SSL3_GET_SERVER_CERTIFICATE certificate verify failed

标签 ssl

我们在 Windows 2003 Server 上安装了 IBM Sterling Connect Direct 4.2,一切正常,甚至 SSL 配置也正常,我们可以正常交换文件。现在,我已经将所有配置迁移到Windows Server 2008集群环境中。一切都很好...我已经配置了 IBM Sterling Connect Direct 4.6.0.1 - 甚至 SSL 配置,我们只是复制/粘贴了证书、 key 证书和可信文件 -。一切正常,我们能够在 SSL session 下接收文件。但是......有一个异常(exception)......我们面临的问题是当我们尝试将文件发送给我们的合作伙伴时,我们收到此错误:

Message ID: CSPA311E
SSL Certificate verification failed, reason= self certificate in certificate chain:

随后出现此错误:

Message ID: CSPA309E
SSL3_GET_SERVER_CERTIFICATE certificate verify failed:

我们使用完全相同的配置,除了 IP 和服务器名称已更改之外。证书以任何方式链接到服务器名称或 IP?

非常感谢有关此问题的任何提示。

最佳答案

证书是针对特定域名或IP地址颁发的。我很确定这就是您错误的原因。您可以使用 JRE 或 JDK 安装附带的 keytool.exe 进行检查,该文件位于 /bin 目录中。因此,从命令行发出以下命令:

keytool.exe -printcert -file C:\path\to\your\file.crt

这将给出如下输出: enter image description here

在第二行中您可以看到:Owner: CN=localhost, ... 这意味着该证书是为 localhost 颁发的。

如果此 CN 条目与新的 IP 地址或域名不同,您有两种可能性。

  1. 创建为该特定 IP 或域颁发的新证书。您可以再次使用java keytool.exe。
  2. 您需要更新用于检查证书有效性的客户端应用程序。因此,您需要告诉客户端不要根据远程服务器的真实 IP 地址或域名检查证书 CN 名称。 (出于安全原因不推荐。)

关于ssl - 出现此错误 : SSL3_GET_SERVER_CERTIFICATE certificate verify failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18290060/

相关文章:

tomcat - 在 tomcat 中评估和/或设置 key 交换算法

ssl - 使用 JACL 脚本选择 modifySSLConfig 上的所有别名

c# - 使用 C# 和 .NET 4.5 连接到 SSL 服务器时出错

WCF - 通过 HTTPS 使用 SOAP 服务 - 请求超时

java - SSL 握手错误 javax.net.ssl.SSLHandshakeException Received fatal alert bad_certificate

ssl - 基于操作系统的证书(ca-bundle.crt)是否可以使用 smtp_tls_CAfile 正常工作

Java SSL 安全

java - NoHostAvailableException::Java 到 Cassandra SSL 集群连接失败

java - Java 和 HTTPS 中的导入私钥问题

向服务器发送请求时出现 javax.net.ssl.SSLHandshakeException : java. security.cert.CertPathValidatorException