我有一个运行的 dovecot 服务器,它强制执行TLS1.2
ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1 TLSv1.2
以前这个功能运行正常,直到有人尝试连接 iPhone,却发现服务器没有响应,然后我在服务器上看到了如下日志消息:
imap-login: Error: SSL: Stacked error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
我发现只要我允许,它就能正常工作TLSv1
。这是真的吗?我发现其他人也在抱怨它(http://www.clift.org/fred/frustration-with-apple-mail-app-on-ios-and-yosemite.html)但我真的不敢相信。请告诉我我忽略了一些显而易见的东西。TLSv1.2
例如,仅支持特殊密码?
以下是我完成的 SSL 配置:
$ egrep -v "^#|^$" /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = </etc/ssl/my_certs/mail.xyz.tld.crt
ssl_key = </etc/ssl/my_certs/mail.xyz.tld.key
ssl_dh_parameters_length = 2048
ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1 TLSv1.2
ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
ssl_prefer_server_ciphers = yes
请有人叫醒我并告诉我这只是一场噩梦……
感谢您的帮助!
答案1
我希望我能掐你一下把你叫醒,但遗憾的是,这不是梦。iOS 邮件应用无法支持 TLSv1 之后的任何 TLS。甚至 1.1 也不行(PCI 允许)。苹果在这方面确实做得不好。邮件应用支持 SMTP 的 TLS1.1 和 1.2,但不支持 POP3 或 IMAP。似乎人们至少已经向苹果抱怨了一年,但到目前为止没有任何效果。