我在 Ubuntu 16.04 中遇到了 Postfix+Dovecot 配置问题。我可以配置我的邮箱,并且可以正确发送和接收电子邮件,现在我想设置 POP3+IMAP。
我遇到的问题是,连接时我总是得到错误的证书
root@server:~# openssl s_client -connect server:993 #with or without servername parameter
CONNECTED(00000003)
depth=0 CN = localhost.localdomain
verify return:1
---
Certificate chain
0 s:/CN=localhost.localdomain
i:/CN=localhost.localdomain
然后它不会返回在/etc/dovecot/conf.d/10-ssl.conf。在此文件中,我指定了 ssl、ssl_cert、ssl_key、ssl_key_password 和 verbose_ssl。为了构建证书,我将“example.com”crt、CA 包和密钥都连接到同一个文件中。
使用的证书是为“example.com”(无子域)颁发的,并且我配置了我的服务器/etc/postfix/main.cf将“example.com”作为 myhostname 和 mydestination 字段。我的 MX 记录也指向“example.com”
机器的主机名是“server”
日志中唯一奇怪的消息是:
May 20 01:33:47 server dovecot: lda(root): Error: chdir(/root/) failed: Permission denied (euid=65534(nobody) egid=65534(nogroup) missing +x perm: /root, dir owned by 0:0 mode=0700)
May 20 01:33:47 server dovecot: lda(root): Error: chdir(/root) failed: Permission denied
May 20 01:33:47 server dovecot: lda(root): Error: User initialization failed: Namespace '': stat(/root/Maildir) failed: Permission denied (euid=65534(nobody) egid=65534(nogroup) missing +x perm: /root, dir owned by 0:0 mode=0700)
May 20 10:58:47 server dovecot: lda: Fatal: Invalid user settings. Refer to server log for more information.
May 20 01:33:47 server dovecot: lda: Fatal: Invalid user settings. Refer to server log for more information.
May 20 09:26:07 server postfix/smtpd[23663]: warning: cannot get RSA certificate from file "/etc/ssl/certs/mail_with_key_creationbyte_com.crt": disabling TLS support
May 20 09:26:07 server postfix/smtpd[23663]: warning: TLS library problem: error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib:ssl_rsa.c:708:
根文件夹已经具有 root:root 0700 权限。
有什么想法可以使用哪些命令来调试此问题?我不知道 dovecot 如何决定提供哪个证书。
答案1
这里有几个问题:
10-ssl.conf 文件已被更高编号的文件替换:/etc/dovecot/conf.d/99-mail-stack-delivery.conf
因此,无论我在 10-ssl.conf 中输入什么,它总是返回在 99-mail-stack-delivery.conf 中配置的默认设置(默认证书是 localhost.localdomain)
我还指向了错误的端口。我需要使用端口 143
我收到的有关证书的错误是因为 cat 命令格式错误: ----- END CERTIFICATE ---------- BEGIN CERTIFICATE ----- (两者之间缺少一个新行)
然后,postfix 配置文件中的 SMTP 证书与 99-mail-stack-delivery.conf 中指定的证书之间存在差异。postfix 中的证书我使用加密密钥文件进行配置,但 SMTP 不允许加密密钥。因此,我不得不在 postfix 配置中指向未加密的密钥。
希望所有这些信息能够帮助像我这样的新手安装电子邮件服务器。
我使用过的最有用的工具是:
# summary and validation of all config
dovecot -n
# errors and verbosing
tail -f /var/log/dovecot.log
openssl s_client -connect example.com:143 -servername example.com -starttls imap
openssl s_client -connect example.com:143 -servername example.com -starttls imap
通过这两个,你可以检查你的证书以及服务是否正常运行
检查电子邮件队列:mailq command
检查 ~/Maildir{cur,new,tmp} 文件夹是否存在并且具有正确的权限 (youruser:youruser 0700)
启用 Outlook 日志记录:文件 -> 选项 -> 高级 -> 其他 -> 启用故障排除日志记录。日志将位于 AppData\Local\Temp\Outlook Logging 中