传入选项

传入选项

我正在尝试研究如何尽可能保证我发送/接收的电子邮件的安全。

首先,我的域名有通配符 OV SSL 证书,我有.csr.crt.key文件的副本,但我没有任何 PKCS12 文件.p12.pfx,是否可以从我的 SSL 证书中获取这些文件,以便我可以通过电子邮件客户端(如 outlook、thunderbird 等)对外发电子邮件进行数字签名

其次,目前我可以并且应该对我的电子邮件客户端使用的“最安全”/“最佳”的安全设置是什么,以下是所有可用的选项。

传入选项

连接安全:

  • 没有任何
  • 启动TLS
  • SSL/TLS(当前通过端口 993 使用)

身份验证方法:

  • 普通密码(当前通过端口 993 使用)
  • 加密密码
  • Kerberos/GSSAPI
  • NTLM
  • TLS 证书
  • OAuth2

传出选项

连接安全:

  • 没有任何
  • 启动TLS
  • SSL/TLS(当前通过端口 465 使用)

身份验证方法:

  • 无需身份验证(不可用)
  • 普通密码(当前通过端口 465 使用)
  • 加密密码(不可用)
  • Kerberos/GSSAPI(不可用)
  • NTLM(不可用)
  • OAuth2(不可用)

最后但同样重要的一点是,对于 PHPMailer 也是如此,我应该使用 TLS 还是 SSL(哪个更好?)

$phpmailer->SMTPSecure = "tls"; // Choose SSL or TLS, if necessary for your server

答案1

尝试一下如何创建 p12。

openssl pkcs12 -export -in cert.crt -inkey cert.key -name "Your Name" -out cert.p12

以下内容对于公司部署来说已经是“安全”且实用的。

  • 传入端口:POP3 995 或 IMAP 993 (SSL/TLS)

    需要 SMTP 身份验证

  • 外发邮件服务器 (SMTP) 端口:465 (SSL/TLS)

    需要 SMTP 身份验证

最后,尽可能使用 TLS。TLS 性能更好,而某些 SSL 协议存在安全问题。

答案2

入站选项不适用于 PHPMailer。端口 465 (SMTPS) 上的 SSL 自 1998 年以来已被弃用,尽管微软似乎没有注意到这一点。请在端口 587 上使用 SMTP+STARTTLS,这是 PHPMailer 在您使用SMTPSecure = 'tls'&时所做Port = 587的。请注意,PHPMailer 会使用机会性 TLS,即如果您不告诉它使用 TLS 并且您连接到支持它的服务器,它将自动使用它。

最近的 PHPMailer 5.2 版本支持 Gmail 的 XOAUTH2 身份验证,而 6.0 增加了对许多其他提供商的支持。

如果您使用的 PHP 版本早于 5.6,则应该启用证书验证(PHP 5.6+ 默认执行此操作)。

相关内容