配置Sendmail SSL加密以发送和接收电子邮件

时间:2020-01-09 10:40:06  来源:igfitidea点击:

问题描述:如何配置Sendmail电子邮件服务器使用SSL加密来发送/接收电子邮件?
我已经获得或收到了所需的有效SSL证书。
它存储在/etc/mail/ssl目录中,如下所示:

SSL密钥和认证文件- /etc/mail/ssl/sendmail.pem- /etc/mail/ssl/ca-bundle.crt

现在如何在Fedora Core或RHEL或Cent OS下为SSL配置sendmail?

解决方法:Sendmail是一个邮件传输代理(MTA),您需要服务器上的有效SSL证书。
尽管这可能正在消失,但Sendmail仍然是Internet上最受欢迎的MTA。
它的受欢迎程度部分是由于它在Unix操作系统的大多数变体中作为标准MTA的地位。

当您要发送和接收电子邮件时,可以将Sendmail配置为通过安全套接字层(SSL)加密电子邮件。

使用文本编辑器(例如vi)打开sendmail配置文件/etc/mail/sendmail.mc:

# vi /etc/mail/sendmail.mc

现在追加/修改以下指令:

define(`confCACERT_PATH',`/etc/mail/ssl/certs')
define(`confCACERT',`/etc/mail/ssl/ca-bundle.crt')
define(`confSERVER_CERT',`/etc/mail/ssl/sendmail.pem')
define(`confSERVER_KEY',`/etc/mail/ssl/sendmail.pem')

并确保将端口设置为smtps(安全的smtp,即端口465):

DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl

重新启动sendmail并保护pop3s/imaps

执行以下命令以重新启动sendmail和相关服务:

# /etc/init.d/sendmail restart
# chkconfig pop3s on
# chkconfig imaps on
# /etc/init.d/xinetd restart

pop3s和imaps将从xinetd开始

如何仅在本地生成证书以进行测试?

如果没有证书,则可以在Cent OS/RHEL/Fedora Core上本地生成证书。
执行以下命令:

# cd /usr/share/ssl/certs
# make sendmail.pem

现在打开sendmail /etc/mail/sendmail.mc配置文件,并按如下所示追加/修改指令:

define(`confCACERT_PATH',`/usr/share/ssl/certs')
define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl

如上所述,重新启动sendmail。