2010-05-21 25 views
0

我試圖從運行在Mono 2.4.2.3下的ASP.NET MVC網站訪問Gmail的SMTP服務。不過,我不斷收到此錯誤:SSL身份驗證錯誤:在Ubuntu上的ASP.NET上的RemoteCertificateChainErrors

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]
使用

我已經安裝的證書:

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

與此輸出:

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.

其實,這工作了一個月,但神祕地停止工作5月5日。

我今天安裝了這些新的證書,但我仍然收到這些錯誤。

+0

你能確定'sslPolicyErrors'參數的值嗎? – dtb 2010-05-21 18:19:39

+0

@dtb好想法。該代碼位於庫中,因此很難調試,但我一定會嘗試。也許StackTrace會揭示它? – 2010-05-21 19:45:08

回答

1

它也破壞了我的網絡項目,但幸運的是它在我們上線之前。在那之前它工作得很好。我試圖升級到一個定製的2.6,但有更多的迴歸。

ServicePointManager.ServerCertificateValidationCallback在2.4中不起作用,因爲它引發了NotImplemented異常。

我暫時用它來解決這個問題:http://ubuntu-tutorials.com/2008/11/11/relaying-postfix-smtp-via-smtpgmailcom/確實存在一個問題,但沒有編寫代碼(反正會使用它)。

1
+0

感謝您的鏈接。我最終在我的機器上安裝了v2.6。不過,我在Ubuntu上仍然有證書錯誤(同樣,OSX工作正常)。我會有興趣聽到你的經驗。 – 2010-06-04 17:01:36

+0

它沒有爲我工作。我有關於無法寫入流的安全Web服務錯誤。接下來我嘗試的是:http://badgerports.org/ for Mono 2.6。 – joe 2010-06-21 14:39:39

0

我的設置工作正常,就像你的一樣,然後它停止工作沒有地方,所以我知道代碼很好,只是權限。

這是我做了什麼讓它再次工作。

sudo apt-get install ca-certificates