我家里有一个基于的 debian(raspberry pi)邮件服务器,postfix
它们dovecot
都使用 letsencrypt 证书,该证书(由于其余域和端口转发的工作方式)在 synology NAS 上更新。要在 pi 上安装证书,我必须从 NAS 导出证书,然后重新组合它们以提供证书。昨天证书已过期,所以今天早上我回到 NAS 获取更新的证书。
由于创建各种证书的过程很复杂,我已将该过程记录在桌面上的 README 文件中。显然,上次我这样做时它成功了。
我按照流程制作了 3 个文件
注意我ed25519.pem
首先删除了现有的
cat ECC-privkey.pem ECC-cert.pem ECC-chain.pem >> ed25519.pem
然后,我编辑此文件以将其分成不同的行,其中一个证书没有最终回报
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
到
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
然后继续
scp ed25519.pem serverroot:/etc/postfix
Postfix 在main.cf
以下行中使用了这个文件
smtpd_tls_chain_files = /etc/postfix/ed25519.pem
但也有以下
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
virtual_transport = lmtp:unix:private/dovecot-lmtp
scp ECC-privkey.pem serverroot:/etc/dovecot/private/mail_privatekey.pem
cp ed25519.pem mail_server.pem
scp mail_server.pem serverroot:/etc/dovecot/
我/etc/dovecot/conf.d/10-ssl.conf
编辑了两行以阅读
ssl_cert = </etc/dovecot/mail_server.pem
ssl_key = </etc/dovecot/private/mail_privatekey.pem
还请注意,/etc/dovecot/10-master.conf
我们有 imap(在 443 上)、imaps(在 993 上)和 lmtp(通过上面给出的套接字)的定义
并重新启动 postfix 和 dovecot。
Postfix 使用 dovecot lmtp 将其传入邮件毫无问题地发送到服务器。但是,我的邮件程序 (thunderbird) 使用 starttls 在 443 上发送邮件和登录尝试均失败,日志中出现类似消息
ssl3_read_bytes:sslv3 alert bad certificate
我不知道哪里出了问题,也不知道该如何调试。有人能给出建议吗?
更新:
我无法回答具体问题,但我确实找到了另一种解决方案。那就是:
certbot
在邮件服务器上安装- 临时更改路由器上的端口转发,将端口 80 指向我的服务器
- 要求
certbot
安装我需要的证书 - 将端口转发重置回 Synology NAS
- 编辑我的配置文件以使用
/etc/letsencrypt/live/mydomain/{fullchain,privkey}.pem
临近续订时间,我将按照步骤 2(和步骤 4)再次更改路由器,并使用 certbot 进行续订