我需要在两台 Windows 机器之间建立安全通信。我为此生成了一组证书并将其保存为 .x509 文件。
如果我着手在另一台机器上安装它们,我会收到警告The integrity of this certificate cannot be guaranteed. The certificate may be corrupted or may have been altered.
。我理解这意味着它无法验证证书链,但我不知道我需要做什么来授权它们。以前,我可以通过查看证书管理器中导入证书的根证书、将其导出为 .cer 文件,然后将该文件重新导入“受信任的根证书颁发机构”存储来做到这一点,但这似乎在这里不起作用,如果我说实话,我基本上是在将其作为一个巫术过程来做——我不明白它的目的是什么,考虑到我希望能够通过 Powershell 自动化整个过程,我认为我需要在这里加深我的理解。当然,除非有人有一个方便的脚本可以解决这个问题。那会很棒。
我真正想要做的是拥有一组代表我当前证书链的文件,该文件可以作为安装过程的一部分导入,无论需要管理员交互,并将安装一个工作链,然后我可以从我的应用程序中使用该工作链在两台机器之间建立安全管道。
我正在安装我计划使用的实际证书LocalMachine\My
答案1
受信任的根证书是自签名证书。因此,除非您的 Windows 计算机不理解用于创建/签名证书的算法,否则验证证书不会出错。
其中一个案例是算法家族。Windows Server 2003
不理解算法家族。我最近遇到了这个问题,解决方法是在机器上安装一个修复程序来修复这个问题——这是SHA-2
Windows Server 2003
SHA-2
关联获取此修复程序。
答案2
我想你已经解决了你的问题,但我也遇到了这个问题。我在网上搜索了一下,找到了这个问题。
就我而言,“CRL 分发点”中的 CRL 未更新。您可以在证书中看到,您有一个分发点,它会引导您进入所有 CRL 所在的目录。
由此可知,该证书不在 CRL 中。
我的证书是中级 CA,而我们的根 CA 的 CRL 尚未更新。所以您应该检查一下。