2012-04-03 7 views
2

Ich bin ein Zertifikat von Zeichenfolge wie folgt geladen:X509-Zertifikat mit Subject UID

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

Aber dieses Zertifikat verfügt nicht über eine "Subject Unique Identifier" einen Blick auf diese:

http://en.wikipedia.org/wiki/X.509 (der Teil der Struktur eines Zertifikats)

Und ich möchte wissen, wie kann ich diesen Wert von meinem .NET-Code gelesen (ich sah, dass ich Serial bekommen kann, Thumbprints eine d andere, aber es gibt keine Subject UID irgendwo).

Auch ich wirklich schätzen Wenn jemand einen Befehl openssl teilen diese UID für das Zertifikat :-) enthalten (pfx ein)

Antwort

3

Und ich möchte wissen, wie kann ich diesen Wert lesen von meinem .NET-Code

IIRC dies in .NET BCL nicht ausgesetzt ist, entweder aus X509Certificate oder den neueren (besser, aber immer noch unvollständig) X509Certificate2.

Aber Sie können Mono.Security Assembly (oder nur den Code, den Sie wollen), aus dem Mono Projekt. Es ist open source, MIT.X11 lizenziert und es enthält eigene X509Certificate.

Diese Version enthält fast alles in X.509-Zertifikaten, einschließlich einer SubjectUniqueIdentifier-Eigenschaft.

ich wirklich schätzen, wenn jemand kann einen Befehl openssl teilen für das Zertifikat dieser UID enthalten

Ich erinnere mich nicht für openssl ... aber Sie X509CertificateBuilder von Mono.Security verwenden können, um Erstellen Sie Ihre eigenen Zertifikate. Ein Beispiel finden Sie in Mono makecert Tool-Quellcode.

Haftungsausschluss: Ich habe den Code :-)

+0

Dank für die Antwort schrieb, prüfen ich die mono.security Montage und ich werde dich :-) –

+1

wissen lassen Wow! hat super funktioniert :-) vielen dank. –