我正在使用 Debian 8 设置新服务器。 Exim4 已预装,我正在尝试使 TLS 正常工作。
我已将蛇油密钥和证书复制到 /etc/exim4 文件夹中并设置了正确的权限和所有权:
-r--r----- 1 root Debian-exim 1704 Sep 28 20:01 ssl-cert-snakeoil.key
-r--r----- 1 root Debian-exim 1257 Sep 28 20:01 ssl-cert-snakeoil.pem
Run Code Online (Sandbox Code Playgroud)
我已经在 Exim4 中配置了这些
然后我尝试从第二台服务器连接到 SMTP 并像这样启动 TLS:
root@second: ~# telnet mynewserver.net.au 25
Trying xxx.xxx.xxx.xxx...
Connected to mynewserver.net.au.
Escape character is '^]'.
220 mynewserver.net.au ESMTP Exim 4.84_2 Wed, 28 Sep 2016 20:12:12 +1000
ehlo second
250-mynewserver.net.au Hello second [xxx.xxx.xxx.xxx]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-STARTTLS
250 HELP
STARTTLS
454 TLS currently unavailable
Run Code Online (Sandbox Code Playgroud)
来自 mynewserver 的调试日志如下所示:
665 SMTP>> 250-mynewserver.net.au Hello second [xxx.xxx.xxx.xxx]
665 250-SIZE 52428800
665 250-8BITMIME
665 250-PIPELINING
665 250-STARTTLS
665 250 HELP
665 SMTP<< STARTTLS
665 initialising GnuTLS as a server
665 GnuTLS global init required.
665 initialising GnuTLS server session
665 Expanding various TLS configuration options for session credentials.
665 certificate file = '/etc/exim4/ssl-cert-snakeoil.pem'
665 key file = '/etc/exim4/ssl-cert-snakeoil.key'
665 LOG: MAIN
665 TLS error on connection from second (second) [xxx.xxx.xxx.xxx] (cert/key setup: cert='/etc/exim4/ssl-cert-snakeoil.pem' key='/etc/exim4/ssl-cert-snakeoil.key'): Error while reading file.
665 SMTP>> 454 TLS currently unavailable
Run Code Online (Sandbox Code Playgroud)
我已经检查了证书,密钥和证书匹配,如在以下模数相同的测试中:
root@mynewserver: exim4# openssl x509 -noout -modulus -in ssl-cert-snakeoil.pem | openssl md5
(stdin)= 4d56fe03bcdc3103788344d0d7a2eb8d
root@mynewserver: exim4# openssl x509 -noopenssl rsa -noout -modulus -in ssl-cert-snakeoil.key | openssl md5
(stdin)= 4d56fe03bcdc3103788344d0d7a2eb8d
Run Code Online (Sandbox Code Playgroud)
我还配置了新服务器以允许 Debian-exim 登录、登录并能够毫无问题地查看证书文件。
我的所有研究都发现了证书可读、内容正确、匹配并具有正确权限或在 exim4 配置中正确指定的问题。我已经涵盖了所有这些领域,但仍然失败。
你知道我接下来应该检查哪里吗?
这是字面意思——它确实无法读取[证书]文件。我尝试将各种条目添加到我的配置文件中,例如:
tls_certificate=xxx.crt
tls_privatekey=xxx.key
Run Code Online (Sandbox Code Playgroud)
和
MAIN_TLS_CERTIFICATE=xxx.crt
MAIN_TLS_PRIVATEKEY=xxx.key
Run Code Online (Sandbox Code Playgroud)
但这些似乎都不起作用。默认情况下,exim4 查找 CONFIGDIR/exim.crt 和 CONFIGDIR/exim.key (CONFIGDIR 用于我的 /etc/exim4)
因此,将您的证书和密钥复制到这两个文件名。删除您之前添加的所有配置条目,以便 exim4 将不受任何干扰地查找默认条目。确保 exim4 可以读取您的证书和密钥:
华泰
| 归档时间: |
|
| 查看次数: |
4885 次 |
| 最近记录: |