2010-05-21 2 views
0

J'essaie d'accéder au service SMTP de Gmail à partir d'un site ASP.NET MVC fonctionnant sous Mono 2.4.2.3. Mais je continue à obtenir cette erreur:Erreur d'authentification SSL: RemoteCertificateChainErrors sur ASP.NET sous Ubuntu

System.InvalidOperationException: SSL authentication error: RemoteCertificateChainErrors 
    at System.Net.Mail.SmtpClient.m__3 (System.Object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, SslPolicyErrors sslPolicyErrors) [0x00000] 
    at System.Net.Security.SslStream+c__AnonStorey9.m__9 (System.Security.Cryptography.X509Certificates.X509Certificate cert, System.Int32[] certErrors) [0x00000] 
    at Mono.Security.Protocol.Tls.SslClientStream.OnRemoteCertificateValidation (System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Int32[] errors) [0x00000] 
    at Mono.Security.Protocol.Tls.SslStreamBase.RaiseRemoteCertificateValidation (System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Int32[] errors) [0x00000] 
    at Mono.Security.Protocol.Tls.SslClientStream.RaiseServerCertificateValidation (System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Int32[] certificateErrors) [0x00000] 
    at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] 
    at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1() [0x00000] 
    at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process() [0x00000] 
    at (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process() 
    at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] 
    at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000]

J'ai installé des certificats en utilisant:

certmgr -ssl -m smtps://smtp.gmail.com:465

avec cette sortie:

Mono Certificate Manager - version 2.4.2.3 
Manage X.509 certificates and CRL from stores. 
Copyright 2002, 2003 Motus Technologies. Copyright 2004-2008 Novell. BSD licensed. 


X.509 Certificate v3 
    Issued from: C=US, O=Equifax, OU=Equifax Secure Certificate Authority 
    Issued to: C=US, O=Google Inc, CN=Google Internet Authority 
    Valid from: 06/08/2009 20:43:27 
    Valid until: 06/07/2013 19:43:27 
    *** WARNING: Certificate signature is INVALID *** 
Import this certificate into the CA store ?yes 

X.509 Certificate v3 
    Issued from: C=US, O=Google Inc, CN=Google Internet Authority 
    Issued to: C=US, S=California, L=Mountain View, O=Google Inc, CN=smtp.gmail.com 
    Valid from: 04/22/2010 20:02:45 
    Valid until: 04/22/2011 20:12:45 
Import this certificate into the AddressBook store ?yes 

2 certificates added to the stores.

En fait, cela a fonctionné pour un mois, mais mystérieusement cessé de travailler le 5 mai.

J'ai installé ces nouveaux certificats aujourd'hui, mais je reçois toujours ces erreurs.

+0

Pouvez-vous déterminer la valeur de l'argument 'sslPolicyErrors'? – dtb

+0

@dtb bonne réflexion. Ce code est dans une bibliothèque, donc c'est difficile à déboguer, mais j'essaierai certainement. Peut-être qu'un StackTrace le révélerait? –

Répondre

1

Cela a également brisé mon projet web, mais heureusement, c'était avant notre entrée en fonction. Ça fonctionnait bien avant ça. J'ai essayé de passer à une version 2.6 personnalisée, mais il y avait plus de régressions.

ServicePointManager.ServerCertificateValidationCallback n'a pas fonctionné dans 2.4 car il a lancé une exception NotImplemented.

Je l'ai temporairement contourné en utilisant: http://ubuntu-tutorials.com/2008/11/11/relaying-postfix-smtp-via-smtpgmailcom/ Un hackaround à coup sûr, mais aucun code n'a été écrit (qui serait utilisé de toute façon).

1
+0

Merci pour ce lien. J'ai fini par mettre la v2.6 sur ma machine. Cependant, j'avais encore des erreurs de certificat sur Ubuntu (encore une fois, OSX a bien fonctionné). Je serai intéressé d'entendre parler de votre expérience. –

+0

Ça n'a pas marché pour moi. J'ai eu des erreurs de service Web sécurisé sur l'impossibilité d'écrire dans le flux. La prochaine chose que j'essaie: http://badgerports.org/ pour Mono 2.6. – joe

0

Mon programme d'installation fonctionnait correctement comme le vôtre puis il a cessé de fonctionner hors d'où, donc je savais que le code était bien juste les autorisations.

Ce que j'ai fait pour le faire fonctionner à nouveau.

sudo apt-get install ca-certificates