我们需要始终安装在机器上的根证书?(Do we need root certificate inst

2019-09-16 11:18发布

我使用智能卡对用户进行认证。 我有它处理服务器上的认证逻辑一个认证服务(SecurityTokenService)。

我使用X509Certificate2.Verify()验证证书。 由于这个API检查证书是否有效/由上线和证书颁发机构(CA)接触撤销,我是否需要在服务器上的根证书?

我们能否避免我们的本地计算机上有根证书? 或根证书始终是强制性的?

Answer 1:

我尝试了一些东西,这里有意见:

  1. 首先X509Certificate2.Verify()不检查,如果在链中的所有证书被吊销。 从这个职位,我才知道,验证方法在内部使用Crypt32 CertVerifyCertificateChainPolicy功能。 它的文件说,它不执行证书吊销检查。 总之,如果它就是所谓的证书,被撤销或不验证方法只检查。

  2. 关于根证书:

    • 如果您正在使用X509Certificate2.Verify()和根证书不存在,则该方法将返回决绝false 。 所以用这个方法根证书是绝对必要的。
    • 如果您正在使用X509Chain建立信任链,那么你就可以决定是否排除根证书撤销或是否联机/脱机验证撤销状态的证书。
    • 但是,无论你在网上还是别去了,或者你排除根证书与否,你得到的PartialChain在价值ChainStatus如果根证书丢失。 因此,要建立完整的信任链,你需要在你的机器上安装根证书。

希望这可以帮助别人谁想要知道更多一点关于在C#中的证书验证。



文章来源: Do we need root certificate installed on the machine always?