2009-10-29 6 views
1

J'ai un petit problème. J'ai utilisé l'autorité de certification dans Windows Server 2003 et révoqué le certificat client. Le certificat client est dans le certificat révoqué. J'essaie de vérifier ce certificat client sur la révocation dans l'application WinForm dans Windows Server 2003. code est ici:certificat client révoqué

private bool VefiryCert(X509Certificate2 cert) 
{ 
    X509Chain chain = new X509Chain(); 
    chain.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain; 
    chain.ChainPolicy.RevocationMode = 
     X509RevocationMode.Online; 
    chain.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(0, 0, 1000); 
    chain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllFlags; X509VerificationFlags.AllowUnknownCertificateAuthority; 
    return chain.Build(cert); 
} 

But this client certificate is verify as true. Je suis confus, où peut être un problème? Comment puis-je vérifier la liste de révocation, qui est chargée dans l'application winform et utilisée lors de la vérification de ce certificat client?

Donc le problème est que je vérifie le certificat client, qui est dans la liste révoquée (dans l'autorité de certification) avec la méthode VefiryCert, et le certificat est vérifié comme VRAI.

Quelqu'un peut-il m'aider?

Répondre

0

J'ai eu un problème similaire sur le serveur. J'ai trouvé qu'un appel à

ServicePointManager.CheckCertificateRevocationList = true; 

m'a permis de voir l'exception

failed: System.ServiceModel.Security.SecurityNegotiationException : Could not establish trust relationship for the SSL/TLS secure channel with authority 'XXX.XXX.net'. 
----> System.Net.WebException : The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. 
----> System.Security.Authentication.AuthenticationException : The remote certificate is invalid according to the validation procedure.