Certificate 如何确保远程证书(公钥)由我的根ca颁发/签署?

Certificate 如何确保远程证书(公钥)由我的根ca颁发/签署?,certificate,x509certificate,ca,Certificate,X509certificate,Ca,在服务器端,我有自签名CA(证书和私钥)。我使用它们来颁发我的设备证书,并且我想确保如果远程证书未经CA签名,将出现异常 我指的是下面的链接,但它们似乎对我不起作用,请帮助: 当您收到设备证书时,将使用CA证书验证其签名。这就是你所需要的(但是,您需要记住,当CA证书过期并重新颁发时,您必须同时替换设备证书,或者使用多个CA验证设备证书,以确保允许设备证书由以前的CA证书签名。我在下面的链接中使用BouncyCastle来完成此操作,它可以工作很好 Org.BouncyCastle.X509

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

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


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

我在下面的链接中使用BouncyCastle来完成此操作,它可以工作很好

Org.BouncyCastle.X509.X509证书caCert=
新的X509CertificateParser().ReadCertificate(CaCertBytes[]); Org.BouncyCastle.X509.X509证书远程证书=
新X509CertificateParser().ReadCertificate(remoteCertBytes[]);
试试
{
remoteCert.Verify(caCert.GetPublicKey());
结果=真;
}
捕获(例外情况除外)
{
结果=假;
}


如果remoteCert没有由caCert签名,则会出现异常。

是的,我正在尝试使用CA证书验证设备证书的签名。我正在使用C#,在SslSteam的RemoteCertificateValidationCallback函数中执行验证工作。我可以获取设备证书和CA证书,并且我需要一些代码来确保设备证书是sig这是我指的其中一个链接。但我会再检查一遍,肯定有什么我错过了。