2010-08-31 19 views
7

Devo scrivere uno strumento che convalidi se un certificato X509 è valido o meno (input = percorso cert/oggetto e password). Come lo posso fare? Non so molto di certs ...Come convalidare il certificato X509?

+0

Un certificato X.509 non è protetto da password (la sua chiave privata corrispondente in genere è). Se si dispone già del percorso di certificazione, la maggior parte del lavoro viene eseguita (se si ha fiducia nell'ancora di attendibilità a cui quel percorso di certificazione porta). – Bruno

+0

@Bruno: la corretta convalida del certificato è "un po 'più di un semplice controllo delle firme. Anche l'uso delle chiavi, il periodo di validità, i vincoli del percorso devono essere controllati. Quindi deve essere verificata la revoca (usando OCSP e CRL). E così via ... –

risposta

16

Date un'occhiata a X509Certificate2.Verify()

+2

Per aggiungere, se sono necessari dettagli sul motivo per cui un certificato non è riuscito, è possibile generare la catena: http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509chain.aspx – Oliver

2

In generale, RFC 3280 include istruzioni quasi complete su come eseguire la convalida, tuttavia queste istruzioni sono molto banali. Inoltre, è necessario leggere RFC 2560 (OCSP) e implementare il client OCSP.

Per la maggior parte delle attività, il nostro TElX509CertificateValidator component è perfettamente adatto. Controlla i percorsi dei certificati, revoca CRL e OCSP (e verifica anche la validità dei CRL e delle risposte OCSP). È flessibile e abbastanza potente e consente di eseguire controlli aggiuntivi e più approfonditi su ogni passaggio. Anche questo componente può funzionare sia con archivi di certificati di Windows sia con altri certificati, catene di certificati e archivi che potreste avere nei file o nella memoria.

+2

RFC 3280 è stato reso obsoleto dalla RFC 5280: http://tools.ietf.org/html/rfc5280 – Bruno

+0

Buon punto, grazie. –

Problemi correlati