我一直在尝试在运行 Ubuntu 14.04 的 Courier IMAP 服务器上启用 SSL。我安装了courier-ssl
和courier-imap-ssl
。然后服务器完全停止工作,Rainloop webmail 中出现“身份验证错误”。无论服务是否启动,都会发生这种情况,并且只有卸载courier-imap-ssl
时才能解决。courier-ssl
这里可能存在什么问题?我该如何启用 SSL?
安装courier-ssl
并courier-imap-ssl
运行后,如果我运行,会出现此错误openssl s_client -connect localhost:993
:
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 305 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1463335379
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
如果我运行,会出现此错误telnet localhost 993
:
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Connection closed by foreign host.
答案1
我建议使用 openssl 连接到 SSL 服务。普通 telnet 无法与加密连接进行通信:
openssl s_client -connect localhost:993
您可以在建立连接后通过输入以下命令来验证服务:
A login MYUSERNAME MYPASSWORD
响应应该是:
A OK LOGIN Ok.
修复错误安装的一个选项是完全删除该服务,即使配置正确:
apt-get remove --pure courier-imap-ssl
并重新安装。
SSL 问题通常与证书有关,原因之一可能是 /etc/courier/dhparams.pem 未正确生成。DH 参数可以通过mkdhparams
命令重新生成。
答案2
您用来检查 courier 的命令仅适用于立即建议切换到 TLS 的服务器:
openssl s_client -connect localhost:993
为了正确测试邮件服务,当邮件服务STARTTLS
切换到使用 TLS 时,您需要添加如下选项:
openssl s_client -connect localhost:993 -starttls imap
我不知道 14.04 中的服务状态,但我在 18.04 中使用它,并且可以设置 TLS1 协议并且它可以工作。
现在,使用最后一条命令,您将确切看到支持哪些 TLS。由于您提到courier
,我尝试了各种设置,但无法使其与 TLSv1.2 配合使用。它似乎仅限于 TLSv1。如果您希望获得这个,那么您需要切换到另一个服务器,例如 dovecot,它是99% 兼容。