[英]How to store and read Digital Certificates in database using C# for email application (mailkit and mimekit)?
[英]Sending email via C# Mailkit / Mimekit but server certificate error comes in
0 Visual Studio 2015 中的代碼
1 我使用 Mailkit 最新版本 (1.18.1.1) 從我自己的電子郵件服務器發送電子郵件。
2 電子郵件服務器有一個自簽名證書,該證書不受信任。
3 我在代碼中添加了以下兩行,以忽略 SERVER CERTIFICATE 錯誤:
client.ServerCertificateValidationCallback = (mysender, certificate, chain, sslPolicyErrors) => { return true; };
client.CheckCertificateRevocation = false;
4 但我的程序仍然崩潰。
5 在電子郵件服務器日志中顯示錯誤:
來自未知 [xxx.xxx.xxx.xxx] 的 SSL_accept 錯誤:對等方重置連接
我猜這是因為服務器證書問題。 因為在 Wireshark 捕獲中,一旦我獲得 SERVER 證書,連接就會終止。
6 我還在我的系統中安裝了電子郵件服務器的 UNTRUSTED 證書,但問題仍然存在。
8 完整代碼:
使用 (var client = new SmtpClient(new ProtocolLogger("logging.log")))
{
// For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
client.ServerCertificateValidationCallback = (mysender, certificate, chain, sslPolicyErrors) => { return true; };
client.CheckCertificateRevocation = false;
client.Connect("xxx.com", 465, true);
// Note: since we don't have an OAuth2 token, disable
// the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove("XOAUTH2");
// Note: only needed if the SMTP server requires authentication
client.Authenticate("xxx@xxx.com","123456");
client.Send(message);
client.Disconnect(true);
}
如果您控制連接的兩端,您可能需要先檢查不使用 TLS 的發送,以確保問題僅在使用 TLS 時發生。
還可以嘗試在沒有 wireshark、fiddler 或其他中間人嗅探器/代理的情況下運行,以確保以安全的方式到達服務器沒有問題。 檢查您的防病毒或 Internet 安全系統是否由於不受信任的證書而關閉您的連接。
您可能需要確保的另一件事是您的客戶端和服務器共享相同的協議:我知道舊的 TLS 和 SSL 協議已被棄用,因此客戶端和服務器之間可能沒有通用協議。
您還可以嘗試啟用 system.net 跟蹤(自 .NET 2.0 起可用),看看是否從您獲得的(非常詳細的)日志中獲得了一些更具體的見解: https : //blogs.msdn.microsoft.com/dgorti/2005 /09/18/使用系統網絡跟蹤/
System.Net 跟蹤是 1) 每個進程 2) 顯示線程 3) 適用於 SSL 4) 適用於環回。 5)你不需要重新編譯代碼
[編輯]
您的問題似乎有點過於寬泛,我無法猜測問題,請嘗試縮小問題范圍。例如:
順便說一句,SSPI 似乎與受信任的安全問題有關,因此還要仔細檢查您是否已將服務器配置為僅接受受信任的用戶。
[/編輯]
如果這還不夠,我會嘗試更新我的答案 =)
HTH
我的問題解決了。 在 CONNECT 命令和 APP (c#) 開始工作之前,我添加了以下代碼行!!!
client.SslProtocols = System.Security.Authentication.SslProtocols.Tls11;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.