是否可以让 Windows 信任某个证书,而无需让其信任根 CA 作为受信任的根 CA?
假设我有以下证书链,
Dept-Root-CA
Dept-Intermediate-1
Server-Certificate
我想信任 Server-Certificate,但不想信任 Dept-Root-CA,因为这样它就可以签署任何证书,我的服务器也会信任它。仅仅因为我愿意信任 Server-Certificate 上的证书以执行特定操作,并不意味着我愿意相信 Dept-Root-CA 已得到妥善保护。
谢谢
答案1
不。只要证书上写着“颁发者:xxx”,那么你也必须信任 xxx,直到信任链的顶端。如果是自签名证书,你可以将其放入受信任的根 CA 存储中,由于它是颁发给同一实体并由同一实体颁发的,因此应该信任它。
但完全规避基于证书的安全性的整个目的通常是不可行或不可取的。
答案2
嗯....你可以以另一种方式获取信任信息。
不幸的是,它有点复杂。
创建您自己的 CA,然后通过使用您的 CA 签署其证书来为 Dept-Intermediate-1(或 Dept-Root-CA)创建您自己的交叉签名颁发者,可能还会添加域限制。如果“真正的”Dep-Intermediate-1 已停用(最好)或未知,Windows 将改用您的信任链。
请参阅我的其他回答:将根证书限制到域
这就是证书的工作方式,使用数字签名来表示密钥所有权的断言。由于您想断言证书和密钥属于服务器,因此您需要自己在自己的权限下签名,然后告诉系统信任您。
证书仍然有很多用处没有CA 层次结构,高于 SSH 密钥提供的内容;其中一部分是限制。密钥使用、有效期、撤销信息、域限制等。另一部分是识别信息;拥有密钥的服务器、发行者的身份、强制执行的 CA 策略、密钥存储信息等。