2012-04-03 153 views
2

我加载证书从字符串这样的:X509证书与主题UID

public static void Test() 
{ 
    byte[] arrayCertificate; 
    arrayCertificate = Convert.FromBase64String("CERT_STRING"); 
    X509Certificate2 clientCertificateFromXml = new X509Certificate2(arrayCertificate); 
    Console.Write(clientCertificateFromXml); 
    Console.ReadKey(); 
} 

但该证书不具有“主题唯一标识符” 看看这个:

http://en.wikipedia.org/wiki/X.509证书的结构的一部分)

我想知道如何从我的.NET代码中读取该值(我期待可以获得SerialNumber,Thumbprints和d其他人,但任何地方都没有Subject UID)。

另外,我会很感激,如果任何人都可以共享的OpenSSL命令包括这个UID证书:-)(PFX一个)

回答

3

而且我想知道我怎么能读取该值我.NET代码

IIRC这在.NET BCL不外露,无论是从X509Certificate或较新的(更好,但仍然不完全)X509Certificate2

但是,您可以使用Mono.Security程序集(或只是您想要的代码)从Mono项目。它是开源的,MIT.X11许可,它包含它自己的X509Certificate

此版本公开了X.509证书中的所有内容,其中包括SubjectUniqueIdentifier属性。

我会很感激,如果任何人都可以共享的OpenSSL命令包括这个UID证书

我不记得了OpenSSL的...但你可以使用X509CertificateBuilder从Mono.Security到创建您自己的证书。有关示例,请参见Mono的makecert工具源代码。

免责声明:我写的代码:-)

+0

感谢回答,我将测试mono.security装配和我会让你知道:-) – 2012-04-03 19:08:23

+1

哇!工作很好:-)非常感谢你。 – 2012-04-03 19:25:44