在 ASP.Net Mvc 中使用 SMIME 发送电子邮件并安装证书

Send email using SMIME in ASP.Net Mvc and Installation of certificates

我有ASP。当用户点击“忘记密码”时,Net MVC Web 应用程序以纯文本形式向客户端电子邮件发送临时密码 link。

现在我们需要使用 S/MIME 以更安全的方式发送密码。

我在网上做了一些研究,这就是我的发现。

在非常高的级别 S/MIME 对电子邮件进行加密和数字签名,以确保电子邮件经过身份验证并且其内容没有以任何方式被更改。为了实现这个 S/MIME 证书 必须安装在收件人和发件人双方的所有电子邮件客户端上。 由于可能有 1000 个客户,因此我们需要为每个客户提供一个证书,并需要一种方法来确定要为每个客户使用的正确证书。 可能这些证书必须发布到 Active Directory 才能分发。

我的问题是,因为我的应用程序是唯一一个向客户发送邮件的应用程序,不期望从他们那里得到任何回复。

在那种情况下,我是否必须在所有客户端计算机上安装证书? 如果只有发件人有证书但没有 receivers/clients 可以吗?

            smtpClient.Port = 56;
            smtpClient.EnableSsl = false;
            MailMessage mailMessage = new MailMessage()
            mailMessage.From = fromAddress;
            mailMessage.Subject = subject;
            mailMessage.Body = body;
            smtpClient.Send(mailMessage);

除非您拥有该客户的 S/MIME 证书和 public 密钥,否则您无法加密发送给该客户的消息。

In that case, do i have to install certificates on all the client machine?

这似乎是个奇怪的问题...但我想如果您要强迫 S/MIME 说服客户,那么“是”?

Would it be ok if only sender has certificates but not receivers/clients ?

您当然可以为您向其发送电子邮件的每个客户生成 S/MIME 证书和密钥,并将其存储在本地服务器上,但我不确定这对您的客户有多大用处。 ..

如果他们没有证书和私钥,他们将如何解密?