【发布时间】:2011-11-25 12:27:12
【问题描述】:
我想要实现的是能够发送已签名的电子邮件,以便用户的电子邮件客户端将此类邮件显示为受信任的邮件(例如,在 Thunderbird 中,有时此类电子邮件会标有封闭的信封图标)。
我找到了一个 PHPMailer 库,它应该发送签名的电子邮件,但我认为它只是包装了 openssl_pkcs7_sign PHP 函数。我不确定什么是以及如何获取和使用作为函数参数的密钥和证书。有参数:$signcert 和 $privkey。据我了解, $signcert 应该是用于验证消息是否已正确签名的公开证书。 $privkey 是与证书相结合的东西,应该保密并用于签署电子邮件。到目前为止我是正确的吗?
我的问题是如何获得适当的证书。我认为 OpenSSL 允许我生成自己的证书,但这样的证书是否足以满足我的需求?如果是,我如何正确生成它们?我的意思是可能有不同长度的证书和其他可能很重要但我不知道的选项。顺便说一句,我注意到“https”自签名证书会在浏览器中引起警告。邮件也会发生同样的事情吗?在那种情况下,我可能应该从受信任的证书中心购买证书。您能给我建议我应该考虑哪些中心吗?
【问题讨论】:
-
仅供参考 - 与 HTTPS 不同,安全电子邮件不受普遍支持。这是因为在大多数情况下,相当多的邮件系统不会自动支持它(例如,Outlook 仍然没有启用它)。作为替代方案,您可能会查看Hushmail 之类的东西,它提供了用于始终如一地完成此任务的中介系统。但是,请考虑,如果您将任何邮件发送到服务器,然后只能由该服务器(而不是用户的个人证书)解密,那么它本质上是不安全的。
标签: php email openssl phpmailer sign