又是windows 11,停用TLS 1.0、TLS 1.1,只支援1.2
windows 11 從2024年開始,預設就停用TLS 1.0、TLS 1.1了。
表姊公司dovecot 內送郵件伺服器沒有支援TLS 1.2,解法就兩種
- 啟用windows 11 TLS 1.0、TLS 1.1
https://learn.microsoft.com/en-us/windows/win32/secauthn/tls-10-11-deprecation-in-windows - 讓dovecot相容TLS 1.2
重點在Linux Server上的openssl 版本必須1.0.1或以上
dovecot啟用TLS 1.2 做法如下:
https://serverfault.com/questions/959186/error-performing-tls-handshake-with-dovecot-2-3-upgrade
我自己修改dovecot啟用TLS 1.2 做法如下:
- 產生dh.pem
openssl dhparam 4096 > /etc/dovecot/dh.pem - 修改 /etc/dovecot/conf.d/10-ssl.conf
ssl_dh =</etc/dovecot/dh.pem
ssl_min_protocol = TLSv1.2
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL
ssl_prefer_server_ciphers = yes
最後再更新我自己整合的郵件伺服器(綁定本地端微軟網域伺服器)
https://github.com/WilliamFromTW/docker-Postfix-AD
—
2024/01/10 (冏只隔一天又出現其他問題)
上次問題解決之後(windows 11其實有更新到24h2),後續又發現其他台windows 11未更新24h2,收發信還是有問題,但問題不太一樣
Jan 10 09:49:02 docker dovecot: pop3-login: Disconnected: Connection closed: SSL_accept() failed: error:1417A0C1:SSL routines:tls_post_process_client_hello:no shared cipher
我除了更新mail server的postfix 、dovecot、openssl (RockyLinux 8.8) 外,變更dovecot一些設定,就解決問題了。
- 啟用windows 11 的TLS 1.0 、TLS 1.1
依照微軟建議,我做成reg檔案,請按此下載匯入到windows啟用 - 更改dovecot設定,改成最小可支援 TLS 1.1 ,ssl_cipher_lis也修改(出處請參照這裡)
ssl_min_protocol = TLSv1.1
#ssl_cipher_list = ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW:!DH@STRENGTH
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL