是否可以在Windows中信任证书而不信任其根CA?


13

是否有可能使Windows信任证书,而又没有使其信任根CA作为受信任的根CA?

说我有以下证书链,

Dept-Root-CA
Dept-Intermediate-1
Server-Certificate

我想信任服务器证书,但不想信任Dept-Root-CA,因为这样它就可以签署任何证书,而我的服务器也可以信任它。仅仅因为我愿意为特定操作信任服务器证书上的证书,并不意味着我愿意相信Dept-Root-CA已得到适当保护。

谢谢


您到底想信任什么?HTTPS?还是其他的东西?有表明要接受没有从根CA接受其他任何一个证书的方式,但它取决于你在做什么。(尽管尝试验证证书仍然会出错)
Mark Henderson

本质上是。如果它是自定义代码,那么这将不是问题-但这使用的是ADFS 2,关于该证书如何处理证书,我唯一能做的就是更改服务器信任该证书的方式。也有其他情况,但这只是当前示例。
bkr

Answers:


5

否。只要证书上写有“颁发者:xxx”,那么您还必须一直信任xxx,直到整个链上。如果它是自签名证书,则可以将其放在“受信任的根CA”存储中,并且由于它是由同一实体发行并由同一实体发行的,因此应该对其进行信任。

但是,要完全规避基于证书的安全性的整个目的,通常这不是可行的或不可见的。


5
我以前很怕那个。我不会称其为规避。仅仅因为我希望有一个安全的渠道与其他组织组中的计算机进行通讯,并不意味着我想信任他们的CA。
bkr

是的...但是CA签署了该证书,没有该CA证书,另一端可以继续更改其证书。
SpacemanSpiff

6
我不确定我是否理解您的意思。我想明确信任他们的证书。如果更改了,我将不得不再次明确信任它。我基本上想要像Firefox中那样的证书信任模型。在Firefox中,如果证书在现有的受信任CA下无效,则可以选择仍然信任它-如果证书发生更改,则必须选择信任新证书,因为尚未明确信任它。
bkr

2
just keep changing their certificate如果远端更改了他们的证书,那么它将与您保存的证书不匹配。如果您忽略了所有CA业务,那么您不只是将其当作SSH主机密钥来对待。
Zoredache

5
实际上,他们只会每两年更改一次。我使用的MS产品要求通过https保护连接。因此必须得到信任。因为它是用他们的CA签名的,所以我必须信任他们的CA-我不想这样做,因为那样会使他们欺骗我的服务器的任何证书,而不是允许他们与特定主机名的有限交互。
bkr

5

好吧....您可以用另一种方式捕获该信任信息。

不幸的是,它有点复杂。

创建您自己的CA,然后通过与您的CA签署证书来为Dept-Intermediate-1(或Dept-Root-CA)创建自己的交叉签名颁发者,这可能会添加域限制。如果“真实的” Dep-Intermediate-1被停用(最好)或未知,则Windows将使用您的信任链。

在这里查看我的其他答案:将根证书限制为域

这就是使用数字签名表示密钥所有权声明的证书应该如何工作的方式。由于您想断言证书和密钥属于服务器,因此您需要在您的权限下自己对其进行签名,然后告诉系统信任您。

没有 CA层次结构的证书中,仍然有很多实用程序,这比SSH密钥所提供的要重要。其中的一部分是对他们的限制。密钥用法,有效日期,吊销信息,域限制等。拥有密钥,颁发者身份,强制实施的CA策略,密钥存储信息等的服务器。


这是有趣的。我将需要一些时间来尝试完成此过程,并查看是否可以使其正常工作。
bkr
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.