Удаленный сертификат недействителен в соответствии с процедурой проверки.GMAIL - PullRequest
2 голосов
/ 19 октября 2010

Функция ниже работает в консольном приложении, но она не работает на моем сайте asp.net. Я получаю ошибку: Удаленный сертификат недействителен в соответствии с процедурой проверки.

public static void SendEmail(MailMessage mm)
{
    SmtpClient smtp = new SmtpClient();
    smtp.Host = "smtp.gmail.com";
    smtp.Port = 587;
    smtp.EnableSsl = true;
    smtp.Credentials = new NetworkCredential("ma@mail.com", "Pass");

    smtp.Send(mm);
}

1 Ответ

4 голосов
/ 19 октября 2010

Вы можете попытаться обработать событие проверки сертификата, чтобы упростить определение причины, по которой удаленный сертификат считается недействительным.Для этого перед вызовом метода SendEmail добавьте следующую строку:

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

и затем предоставьте реализацию для ValidateServerCertificate, например

public bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    // replace with proper validation
    if (sslPolicyErrors == SslPolicyErrors.None) 
        return true;
    else
        return false;
}

Параметры, полученные с помощью ValidateServerCertificate, должны предоставить вам подробную информациюпочему проверка не проходит (проверьте sslPolicyErrors).У вас также есть доступ к удаленному сертификату и цепочке центров сертификации.

Один из возможных сценариев состоит в том, что вы запускаете веб-сайт под другим пользователем, нежели консольное приложение, и этот пользователь не доверяет издателю (или посреднику).авторитет в цепочке) сертификата Gmail.Это может произойти, если вы каким-либо образом удалили сертификаты из локального компьютера / сертификатов доверенного корня в хранилище сертификатов Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...