在服务器端,我有自签名的CA(证书和私钥)。我使用它们来颁发我的设备证书,并且我想确保如果远程证书没有被CA签名,将会有异常。如何确保远程证书(公钥)由我的根CA颁发/签名?
我指的是下面的链接,但似乎他们没有工作给我,请帮助:
C# How can I validate a Root-CA-Cert certificate (x509) chain?
Verify Remote Server X509Certificate using CA Certificate File
在服务器端,我有自签名的CA(证书和私钥)。我使用它们来颁发我的设备证书,并且我想确保如果远程证书没有被CA签名,将会有异常。如何确保远程证书(公钥)由我的根CA颁发/签名?
我指的是下面的链接,但似乎他们没有工作给我,请帮助:
C# How can I validate a Root-CA-Cert certificate (x509) chain?
Verify Remote Server X509Certificate using CA Certificate File
当您收到的设备证书,您的验证其签名使用CA证书。这就是你需要的一切(但你需要记住,当CA证书到期并重新发布时,你必须更换设备证书,或者使用多个CA验证设备证书,以确保允许由以前的CA签名的设备证书证书。
我下面的链接波纹管,使用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 =
新X509CertificateParser()ReadCertificate(remoteCertBytes []);
尝试
{
remoteCert.Verify(caCert.GetPublicKey());
result = true;
}
赶上(异常前)
{
结果= FALSE;
}
如果remoteCert没有被caCert签名,将会有异常。
是的,我试图使用CA证书验证设备证书的签名。我使用C#,在SslSteam的RemoteCertificateValidationCallback函数中进行验证工作。我可以获得设备证书和CA证书,我需要一些代码以确保设备证书由CA证书签名。 – fanyangxi
这是我所指的链接之一。但我会再检查一次,肯定有一些我错过了。 – fanyangxi