【问题标题】:Cert shows certification chain differently on different machineCert 在不同的机器上以不同的方式显示认证链
【发布时间】:2017-01-19 08:22:48
【问题描述】:

软件供应商向我提供了 SSL 证书(扩展名为 .cer)。当我在笔记本电脑上打开它时,我可以看到

此证书用于以下目的:

  • 所有应用程序策略

发给:uat.xxxxxx.sg

发布者:XXXXXX。

在“Certification path”标签下,我可以链,上面有“XXXXXX”,下面有“uat.xxxxxx.sg”。下面的证书状态显示:

证书状态:

找不到此证书的颁发者。

我把这个证书复制到了一个服务器(姑且称它为服务器XYZ),在服务器上打开,它显示:

Windows 没有足够的信息来验证此证书:

发给:uat.xxxxxx.sg

发布者:XXXXXX。

在“证书路径”选项卡下,它只显示一个“uat.xxxxxx.sg”,

证书状态:

找不到此证书的颁发者。

为什么它在不同的机器上显示不同?

在我的笔记本电脑上,我将证书文件导入到 Java 密钥库文件中。这将是我的信任商店。然后我运行了一个我自己编写的小型 Java 程序,以使用单向 SSL 连接到软件供应商的服务器,并使用以下参数来指定信任库。该程序运行良好,因为它能够成功连接到软件供应商的服务器。

-Djavax.net.ssl.trustStore=....
-Djavax.net.ssl.trustStorePassword....

但是,当我将程序和密钥库带到服务器 XYZ 并运行它时,它“无法找到请求目标的有效证书路径”失败。似乎证书在服务器 XYZ 上变得未知,即使它在我的信任库中。

可能是什么问题?

提前致谢。

【问题讨论】:

  • 您确定证书在您的信任中吗?您可以列出证书并进行检查。 keytool -list -v -keystore keystore.jks
  • 一个 .cer 可以包括叶证书以及到已颁发证书的根 CA 的证书链。在您的情况下,似乎缺少链条。在您的笔记本电脑中,您可能已经安装了颁发者,然后当操作系统显示证书时,它会在系统信任库中找到颁发者并显示它。在您的服务器中可能没有安装颁发者证书。
  • 是的,我确定它在我的信任库中。我确实将信任库文件 (.jks) 从我的笔记本电脑直接复制到服务器 XYZ。我在服务器 XYZ 上运行了您的命令,我可以看到列出的证书“uat.xxxxxx.sg”。我还使用 -Djavax.net.debug=all 运行了我的程序,并且可以在输出中看到我的证书。但是,在输出的末尾,我可以看到描述“certificate_unknown”。
  • 在信任库中包含证书应该足以连接到 SSL 服务器。但通常的配置是包含根 CA,而不是叶证书。你能把它导入JKS吗?如果它不起作用,可能是服务器端配置错误
  • 嗨 pedrofb,我在笔记本电脑上运行了“mmc”,可以在“受信任的根证书颁发机构”下看到颁发者“XXXXXX”。在服务器 XYZ 上,我在运行“mmc”时看不到发行者。这可能解释了为什么我的笔记本电脑和服务器 XYZ 上的证书链显示不同?

标签: java ssl https ssl-certificate keystore


【解决方案1】:

(在 cmets 中求解)

为什么它在不同的机器上显示不同?

.cer 将包含叶证书。当操作系统显示证书时,它会在系统信任库中查找证书链和根 CA

在您的笔记本电脑中,您可能已在系统信任库的“受信任的根证书颁发机构”中安装了颁发者。然后当操作系统显示证书时,它会在系统信任库中找到颁发者并显示它。

在您的服务器中似乎没有安装颁发者的证书链,然后证书可视化工具没有找到它。

似乎证书在服务器 XYZ 上变得未知,即使它在我的信任库中。 可能是什么问题?

将根 CA 证书包含到 JKS 信任库中应该足以连接到 SSL 服务器。尝试将“XXXXXX”导入JKS。

【讨论】:

  • A .cer can include one or more certificates - 这是不正确的。 .cer 只能包含一个证书。多个证书(比如证书链)通常存储在一个 PKCS#7 文件中(.p7b 文件扩展名)。
  • 好吧,.cer 在某些情况下被用作 PEM 的同义词,但正如您所指出的那样,认为这不是通常的情况。我更正答案。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
相关资源
最近更新 更多