在C#中,我从一个初始化如下的X509Store加载X509Certificate2对象:
X509Store store = new X509Store("My", StoreLocation.LocalMachine);
store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly);我在Openssl中制作了我的证书,它被设置为“任何用途”。因此,我希望X509Certificate2.Extensions是非空的,并保留"Server Auth“扩展。但是,扩展名始终是一个空列表。有什么想法吗?
发布于 2009-07-24 20:41:11
我会在一个独立的来源中仔细检查证书,只是为了检查你认为其中的数据是否真的存在。我通常使用基于web的工具之一:
http://www.redkestrel.co.uk/cgi/decodeCert.pl
http://www.bogpeople.com/networking/CertDecoder/
有两个这样的工具。
这样,您就可以知道是测试数据还是X509库的使用。
接下来,我不确定你所说的“任何目的”是什么意思。我浏览了Open SSL文档,但我没有看到您所描述的设置。证书中有两个扩展,用于定义密钥-密钥用法和扩展密钥用法的用法。Open SSL命令和配置文件的描述并没有显示您可以设置"any“并打开所有这些命令的位置。我认为您需要的是扩展密钥用法扩展上的"serverAuth“值:
http://www.openssl.org/docs/apps/x509v3_config.html#Extended_Key_Usage_
如果您愿意发布用于证书生成的特定openSSL命令和配置文件,我可能会提供更多帮助。
https://stackoverflow.com/questions/1175200
复制相似问题