在服务器端,我有自签名CA(证书和私钥)。我使用它们来颁发我的设备证书,并且我想确保如果远程证书没有由CA签名,则会有例外。
我指的是下面的链接,但似乎它们对我不起作用,请帮助:
C# How can I validate a Root-CA-Cert certificate (x509) chain?
Verify Remote Server X509Certificate using CA Certificate File
答案 0 :(得分:0)
收到设备证书后,您将使用CA证书验证其签名。这就是您所需要的(但您需要记住,当CA证书过期并重新发布时,您还必须更换设备证书或使用多个CA验证设备证书,以确保您允许先前CA签署的设备证书证书。
答案 1 :(得分:0)
我正在关注下面的链接,使用BouncyCastle来做到这一点,它运行正常。
C# How can I validate a Root-CA-Cert certificate (x509) chain?
Org.BouncyCastle.X509.X509Certificate caCert =
new X509CertificateParser()。ReadCertificate(CaCertBytes []); Org.BouncyCastle.X509.X509Certificate remoteCert =
new X509CertificateParser()。ReadCertificate(remoteCertBytes []);
尝试
{
remoteCert.Verify(caCert.GetPublicKey());
result = true;
}
catch(Exception ex)
{
result = false;
}
如果remoteCert未由caCert签名,则会有异常。