如何修复邮件服务器 SSL?

如何修复邮件服务器 SSL?

我们的邮件服务器最初是使用自创证书设置的。然而,当证书过期时,我试图重新创建它们,结果整个系统都崩溃了。因为我知道这很重要,所以我们运行的是 Debian 服务器和 postfix。

现在我看到邮件日志中产生了这些错误:

May 15 08:06:34 letterpress postfix/smtpd[22901]: warning: cannot get certificate from file /etc/postfix/ssl/smtpd.cert
May 15 08:06:34 letterpress postfix/smtpd[22901]: warning: TLS library problem: 22901:error:02001002:system library:fopen:No such file or directory:bss_file.c:352:fopen('/etc/postfix/ssl/smtpd.cert','r'):
May 15 08:06:34 letterpress postfix/smtpd[22901]: warning: TLS library problem: 22901:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
May 15 08:06:34 letterpress postfix/smtpd[22901]: warning: TLS library problem: 22901:error:140DC002:SSL routines:SSL_CTX_use_certificate_chain_file:system lib:ssl_rsa.c:720:
May 15 08:06:34 letterpress postfix/smtpd[22901]: cannot load RSA certificate and key data

当尝试从本地网络之外的 Thunderbird 等客户端访问电子邮件时,您会收到“无法连接到 smtp 服务器”的消息。

我已经验证文件 /etc/postfix/ssl/smtpd.cert 确实存在。该文件的当前所有者是root:root。这是否需要更改?

答案1

您的/etc/postfix/main.cf意愿包含以下三个指令。

 smtpd_tls_cert_file=
 smtpd_tls_key_file=
 smtpd_use_tls=yes

这告诉 Postfix 使用 TLS。

您可以通过禁用 TLS 或创建新证书使其重新工作。

禁用 TLS

  1. 改变smtpd_use_tls从是到否
  2. /etc/init.d/postfix 重启

创建新证书

  1. 找到密钥文件(根据smtpd_tls_key_文件)。如果缺失,则必须创建一个新的。(openssl genrsa -out 文件名.key 1024; chmod 600 文件名.key
  2. 创建一个企业社会责任openssl req -new -key 文件名.key -out 文件名.csr
  3. 创建证书(openssl x509 -req -days 730 -in 文件名.csr -signkey 文件名.key -out 文件名.crt
  4. 将其转换为 .pem 格式(cat 文件名.key 文件名.crt > 文件名.pem;chmod 600 文件名.pem;chown postfix 文件名.pem

然后确保它位于需要的位置/etc/postfix/main.cf,然后重新启动 Postfix。一切就绪。

答案2

看起来好像您在“/etc/postfix/ssl/smtpd.cert”中遇到了问题,要么是文件丢失,要么是文件上的权限错误,要么是其中的证书格式无效。

答案3

我遇到了这个问题。原来我的私钥名称是邮件服务器。质子泵但在 postfix 的配置中它是邮件服务器。钥匙。我遵循了一个包含 .pem 扩展名的教程。

我还让证书和私钥只能由 root 读取,我对此进行了更改,以便 root 和 postfix 都可以读取它们(chown root:postfix filename;chmod 640 filename)。不确定是否需要第二步。

相关内容