我使用OpenSSL生成了CA和多个证书(由CA签名),我有一个.NET/C#客户端和服务器SslStream
,每个都使用自己的证书/密钥,启用相互身份验证并禁用吊销.
我使用RemoteCertificateValidationCallback
了SslStream
验证远程服务器的证书,我希望我可以只加载CA的公钥证书(作为文件)的程序,并用它来验证远程证书而不是实际安装CA在Windows证书存储区.问题是X509Chain
除非我将CA安装到商店中,否则不会显示任何其他内容,当我打开其中一个证书的PEM版本时,Windows CryptoAPI shell也会显示.
我的问题是,我怎么能确认证书已签署了我的特定的CA只使用CA的公钥证书文件,而无需使用Windows证书存储区或WCF的时候RemoteCertificateValidationCallback
,X509Certificate
和X509Chain
似乎并没有给我什么合作?