是否有可能让 Windows 信任证书,而不让它信任根 CA 作为受信任的根 CA?
说我有以下证书链,
Dept-Root-CA
Dept-Intermediate-1
Server-Certificate
我想信任 Server-Certificate,但不想信任 Dept-Root-CA,因为这样它就可以签署任何证书并且我的服务器会信任它。仅仅因为我愿意信任 Server-Certificate 上用于特定操作的证书,并不意味着我愿意相信 Dept-Root-CA 已得到妥善保护。
谢谢
不可以。只要证书上写着“颁发者:xxx”,那么您还必须信任 xxx,一直到链上。如果它是一个自签名证书,你可以把它放在受信任的根 CAs 存储中,因为它是由同一个实体颁发和颁发的,所以它应该是可信的。
但不,完全规避基于证书的安全性的全部目的通常是不可行或不可取的。
嗯……您可以用另一种方式获取信任信息。
不幸的是,它有点复杂。
创建您自己的 CA,然后通过与您的 CA 签署他们的证书,为 Dept-Intermediate-1(或 Dept-Root-CA)创建您自己的交叉签名颁发者,可能会添加域限制。如果“真正的”Dep-Intermediate-1 被停用(最好)或未知,Windows 将改用您的信任链。
在这里查看我的其他答案:Restrict a root certificate to a domain
这就是证书应该如何工作,使用数字签名来表示密钥所有权的断言。因为你想断言证书和密钥属于服务器,所以你在你的授权下自己签名,然后告诉系统信任你。
在SSH 密钥提供的功能之上,没有CA 层次结构的证书中仍然有很多实用程序;部分原因是对它们的限制。密钥用途、有效日期、吊销信息、域限制等。另一部分是标识信息;拥有密钥的服务器、颁发者的身份、执行的 CA 策略、密钥存储信息等。