0

在服务器端,我有自签名 CA(证书和私钥)。我使用它们来颁发我的设备证书,并且我想确保如果远程证书未由 CA 签名,则会出现异常。

我指的是下面的链接,但似乎它们对我不起作用,请帮助:

C# 如何验证 Root-CA-Cert 证书 (x509) 链?

使用 CA 证书文件验证远程服务器 X509Certificate

4

2 回答 2

0

当您收到设备证书时,您将使用 CA 证书验证其签名。这就是您所需要的(但您需要记住,当 CA 证书过期并重新颁发时,您必须同时替换设备证书或使用多个 CA 验证设备证书,以确保您允许由以前的 CA 签署的设备证书证书。

于 2012-06-06T14:32:04.123 回答
0

我正在关注下面的链接,使用 BouncyCastle 来执行此操作,它工作正常。

C# 如何验证 Root-CA-Cert 证书 (x509) 链?

Org.BouncyCastle.X509.X509Certificate caCert =
       new X509CertificateParser().ReadCertificate(CaCertBytes[]); Org.BouncyCastle.X509.X509Certificate remoteCert =
       new X509CertificateParser().ReadCertificate(remoteCertBytes[]);
尝试
{
       remoteCert.Verify(caCert.GetPublicKey());
       结果=真;
}
捕捉(异常前)
{
       结果 = 假;
}

如果 remoteCert 没有被 caCert 签名,就会出现异常。

于 2012-06-08T05:16:29.103 回答