我有一个p12文件。这是由DigiCert p7b生成的。
当我在一台机器上(windows服务器,使用证书mmc)将其导入我的个人存储时,当我查看路径时,它会显示一个链。
使用同一个文件,我将导入到不同机器上的个人存储中(也是windows,使用certs-mmc)。在这条路上,我看到了一条不同的路径(在这种情况下,它有一个过期的跃点)
具体来说,超过我的证书两跳,就会出现分歧。
为什么会发生这种情况?我能做些什么来影响这条链吗(记住它是同一个p12,正在创建不同的路径)?
我还应该说,我不是这方面的专家。我是一个开发人员,在需要时会混淆这些安全问题。
我遇到了同样的问题。两个不同的windows 2008 r2服务器,相同的证书。在标准操作系统修补后,其中一台服务器只发送了证书信任链的第一层(编号0),因此openssl客户端出现故障,并显示以下消息:验证错误:num=21:无法验证第一个证书
不知道根本原因是什么。我试过
- 在IIS中重新分配证书
- 再进口证书
- 重新启动IIS
没有成功。最终帮助解决问题的是服务器重新启动。。。
结束这一切。我仍然有点不明白为什么事情会这样发展,但有些事情是有道理的。看起来.p12是由p7b创建的,其中包含一些中间证书。其中一个中间体是坏的。这就解释了为什么一台机器的链条坏了。
仍然不确定我是如何在不同的机器上看到一条好的链条的,但我明白为什么我看到了坏的。好的链条似乎是侥幸,坏的链条应该是意料之中的(我最初的想法正好相反)。
我在没有中间体的情况下创建了一个新的.p12。清理了服务用户和本地机器商店中以前从第一个.p12导入的所有不良中间体。现在,所有机器上都有相同的有效链,一切似乎都如预期一样工作。