软件供应商给了我一个SSL证书(.cer扩展)。当我在笔记本电脑里打开它的时候,我可以看到
本证书的目的如下:
发行至: uat.xxxxxx.sg
发行: XXXXXX。
在“认证路径”选项卡下,我可以链接,顶部是"XXXXXX“,下面是"uat.xxxxxx.sg”。下面的证书状态显示:
证书状态: 找不到此证书的签发人。
我将此证书复制到服务器(让我们称之为服务器XYZ),并在服务器上打开它,它显示:
Windows没有足够的信息来验证此证书: 发行至: uat.xxxxxx.sg 发行: XXXXXX。
在“证书路径”选项卡下,它只显示一个"uat.xxxxxx.sg",
证书状态: 找不到此证书的签发人。
为什么它在不同的机器上显示不同?
在我的笔记本电脑上,我将证书文件导入到Java文件中。这将是我的信托商店。然后我运行了一个自己编写的小型Java程序,使用单向SSL连接到软件供应商的服务器,并使用以下参数指定信任存储。该程序运行良好,因为它能够成功地连接到软件供应商的服务器。
-Djavax.net.ssl.trustStore=....
-Djavax.net.ssl.trustStorePassword....但是,当我将程序和keystore带到服务器XYZ并运行它时,它失败了,“无法找到指向请求目标的有效证书路径”。在服务器XYZ上,即使在我的信任库中,证书似乎已经变得未知了。
有什么问题吗?
提前谢谢。
发布于 2017-01-19 09:12:33
(已在评论中解决)
为什么它在不同的机器上显示不同?
.cer将包括叶证书。当操作系统显示证书时,它将在系统信任存储中查找证书链和根CA。
在您的膝上型计算机中,您可能已经在系统信任存储的“受信任根证书颁发机构”中安装了颁发者。然后,当操作系统显示证书时,它会在系统信任库中找到颁发者,并显示它。
在您的服务器中,似乎没有安装颁发者的证书链,那么证书可视化程序就找不到它。
在服务器XYZ上,即使在我的信任库中,证书似乎已经变得未知了。有什么问题吗?
将根CA证书包含到JKS信任库中,应该足以连接到SSL服务器。尝试将"XXXXXX“导入JKS。
https://stackoverflow.com/questions/41737009
复制相似问题