如何修复邮件服务器 SSL?

Noa*_*ich 4 email-server debian postfix ssl-certificate

我们的邮件服务器最初是使用自行创建的证书设置的。然而,当它们过期时,我试图重新创建它们,整个事情就爆炸了。因为我知道这很重要,所以我们正在运行 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
Run Code Online (Sandbox Code Playgroud)

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

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

Bre*_*nt 5

/etc/postfix/main.cf将包含以下三个指令。

 smtpd_tls_cert_file=
 smtpd_tls_key_file=
 smtpd_use_tls=yes
Run Code Online (Sandbox Code Playgroud)

这告诉 Postfix 使用 TLS。

您可以通过禁用 TLS 或创建新证书使其再次运行。

禁用 TLS

  1. smtpd_use_tls从 yes更改为 no
  2. /etc/init.d/postfix 重启

创建新证书

  1. 找到密钥文件(根据smtpd_tls_key_file)。如果它丢失了,您将不得不创建一个新的。( openssl genrsa -out filename.key 1024; chmod 600 filename.key )
  2. 创建CSRopenssl req -new -key filename.key -out filename.csr
  3. 创建证书(openssl x509 -req -days 730 -in filename.csr -signkey filename.key -out filename.crt
  4. 将其转换为 .pem 格式(cat filename.key filename.crt > filename.pem;chmod 600 filename.pem; chown postfix filename.pem

然后根据/etc/postfix/main.cf确保它在需要的位置,然后重新启动 Postfix。你应该很高兴去。