如何确保远程证书(公钥)由我的root ca签发/签名?

时间:2012-06-06 13:05:46

标签: certificate x509certificate ca

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

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

C# How can I validate a Root-CA-Cert certificate (x509) chain?

Verify Remote Server X509Certificate using CA Certificate File

2 个答案:

答案 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签名,则会有异常。