如何在使用SHA-2而不是SHA-1之间切换?

Ana*_*oly 9 c# ssl sha

我的程序使用SHA-1证书进行SSL连接.现在,某些Web服务(Gmail)已广泛使用SHA-2证书.这会导致在电子邮件通知设置期间阻止到SMTP服务器的传入连

要发送电子邮件,我使用像这样的SmtpClient

using (var smtpClient = new SmtpClient(serverSettings.SmtpServerName, (int)serverSettings.SmtpPort))
{
     smtpClient.EnableSsl = serverSettings.SmtpUseSsl;
     smtpClient.UseDefaultCredentials = false; 

     if (!string.IsNullOrEmpty(serverSettings.UserName) || !string.IsNullOrEmpty(serverSettings.EncryptedPassword))
     {
          smtpClient.Credentials = new NetworkCredential(serverSettings.UserName, serverSettings.EncryptedPassword);
     }
                ...
      smtpClient.Send(message);
}
Run Code Online (Sandbox Code Playgroud)

我无法使用此代码发送电子邮件,我不想在我的Gmail帐户中允许"安全性较低的应用程序".

如何实现或切换到电子邮件通知的SHA-2证书?

Ste*_*ich 9

SHA-1与SHA-2完全无关.对于不使用OAuth 2.0进行身份验证的应用程序(允许双因素身份验证)而不是简单密码的谷歌应用程序会考虑"安全性较低的应用程序".有关详细信息,请参阅新的安全措施将影响较旧的(非OAuth 2.0)应用程序.

有关在C#中使用OAuth 2.0,请参阅SMTP和OAuth 2