如何设置TLS以使用Postfix邮件服务器

我一直负责在国际办公室的Postfix电子邮件中继服务器上实施TLS。

我知道我需要修改'/etc/postfix/main.cf'来设置TLS。 我们在美国有另一个电子邮件中继服务器,它使用TLS进行安装,并具有以下TLSconfiguration:

# TLS parameters 'mail.company-name.com' smtpd_tls_cert_file=/etc/ssl/certs/company-name.com.pem smtpd_tls_key_file=/etc/ssl/private/company-name.com.key smtpd_use_tls=yes smtp_tls_loglevel=5 smtpd_tls_security_level=may smtp_tls_note_starttls_offer=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache 

我可以在我的国际办公室的Postfix服务器上实现这个configuration,所以我只是想知道如果我还剩下要做的就是生成一个类似于下面几行中引用的证书的“mail.company-name.in”的证书:

 smtpd_tls_cert_file=/etc/ssl/certs/company-name.com.pem smtpd_tls_key_file=/etc/ssl/private/company-name.com.key 

新的configuration如下:

 # TLS parameters 'mail.company-name.in' smtpd_tls_cert_file=/etc/ssl/certs/company-name.in.pem smtpd_tls_key_file=/etc/ssl/private/company-name.in.key smtpd_use_tls=yes smtp_tls_loglevel=5 smtpd_tls_security_level=may smtp_tls_note_starttls_offer=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache 

我错过了你可能已经注意到的其他东西吗? 任何build议将被认真考虑。

如果您有任何问题,请告诉我,我很乐意澄清。

感谢您的帮助!

我在这里假设你没有为你的域名签署证书,否则你的问题将是毫无意义的。

如果你想要一个由CA签名的证书,你需要去一个CA并给他们你的CSR,那么你会得到一个证书。 只要你的客户的设备信任它,你select哪个CA是无关紧要的。

要生成CSR,请参阅openssl:

 openssl req -new -newkey rsa:4096 -nodes -out company-name.com.csr -keyout company-name.com.key 

您需要回答几个问题,但通用名称除外,它们都是不相关的。

另请参阅如何购买SSL证书? 还有很多其他的问题


编辑:

 smtpd_tls_cert_file=/etc/ssl/certs/company-name.com.pem smtpd_tls_key_file=/etc/ssl/private/company-name.com.key 

这些行定义了用于TLS会话的证书和密钥文件。 如果您希望客户端可以validation有效性,则需要使用smtpd_tls_CAfile提供证书链。

 smtpd_use_tls=yes smtp_tls_note_starttls_offer=yes 

这使机会encryption。 即当一个SMTP客户端连接,提供邮件到您的服务器/它传递邮件到另一个SMTP服务器,它宣布STARTTLS可用。

 smtp_tls_loglevel=5 

用于debugging。 请注意, 文档不build议高于2的任何内容,5完全没有定义。 1是合理的。

 smtpd_tls_security_level=may 

启用机会encryption,但不要求它。 您可能希望将其设置为encrypt提交。

 smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache 

需要会议票和build议。

你想看看BetterCrypto.org的应用encryption硬化指南,它包含了一个完整的Postfix的例子。