我有一个后缀服务器,它有多个域,我希望每个都有一个特定的证书。我的服务器只有一个IP。
我已经找到了一个多IP的解决方案,但是如果没有它,我就不知道怎么做了。
发布于 2020-01-29 20:11:50
如果您使用的是后缀>=3.4,请将下面的步骤看作是经过调整的从这个链接:
步骤1:注释掉前两行,并将以下行添加到/etc/后缀/main.cf:
# smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
# smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
# provide the primary certificate for the server, to be used for outgoing connections (note the indentation)
smtpd_tls_chain_files =
/etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem,
/etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
# provide the map to be used when SNI support is enabled
tls_server_sni_maps = hash:/etc/postfix/vmail_ssl.map
步骤2:创建文件/etc/postfix/vmail_ssl.map,如下所示:
# Compile with postmap -F hash:/etc/postfix/vmail_ssl.map when updating
# One host per line
mail.yourprimarymailserverdomain.com /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
mail.yoursecondarymailserverdomain.com /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/fullchain.pem
# add more domains with keys and certs as needed
步骤3:运行postmap -F hash:/etc/postfix/vmail_ssl.map
。
步骤4:运行systemctl restart postfix
。
步骤5:现在测试您的域的SSLs!对于每个域,运行以下命令:openssl s_client -connect localhost:25 -servername mail.mydomainname.com -starttls smtp
发布于 2021-01-21 23:50:51
对于那些不知道的人,每次证书更改时都需要重新构建SNI表,因为基础表是用导入文件内容的postmap -F
生成的(它不只是存储对文件名的引用)。
postmap -F hash:/etc/postfix/tls_server_sni_maps.map
发布于 2019-12-21 00:10:48
PostFixVersion3.4现在支持SNI,因此它可以在Ubuntu19.10中获得。
另外,有一个很好的理由需要这样做,例如Outlook尝试使用与电子邮件域名匹配的servername进行自动配置。如果您的邮件帐户位于Gmail或另一个共享域,这不是问题,但是在服务器上托管的个人域(甚至VPS)需要这样的解决方案
https://serverfault.com/questions/928926
复制相似问题