После очередного обновления Fedora некоторые пользователи Thunderbird наткнулись на сообщение:
The message could not be sent using SMTP server smtp.***.com for an unknown reason. Please verify that your SMTP server settings are correct and try again, or contact your network administrator.
Причиной этой ошибки может быть недавно вышедшее обновление NSS 3.19.1 где самым важным является установка минимальной длинны ключей.
The minimum size of keys that NSS will generate, import, or use has been raised:
- The minimum modulus size for RSA keys is now 512 bits
- The minimum modulus size for DSA keys is now 1023 bits
- The minimum modulus size for Diffie-Hellman keys is now 1023 bits
$ echo | openssl s_client -starttls smtp -connect SMTP.SERVER.YOURS:587 -cipher "EDH" 2>&1 | grep -i "Server Temp Key" Server Temp Key: DH, 512 bits $ echo | openssl s_client -connect IMAP.SERVER.YOURS:993 -cipher "EDH" 2>&1 | grep -i "Server Temp Key" Server Temp Key: DH, 1024 bits $ echo | openssl s_client -connect POP.SERVER.YOURS:995 -cipher "EDH" 2>&1 | grep -i "Server Temp Key" Server Temp Key: DH, 1024 bits $ echo | openssl s_client -connect WWW.SERVER.YOURS:443 -cipher "EDH" 2>&1 | grep -i "Server Temp Key" Server Temp Key: DH, 1024 bits
Как видим длинны DH ключа не хватает только для StartTLS хотя все остальные ключи в пределах нормы на сегодняшний день. Поэтому если хотите подумать про день завтрашний ставьте ключи подлиннее — 4096 бит например.
Чтобы вернуть работоспособность Thunderbird необходимо либо увеличить длину DH ключа на сервере либо сделать downgrade библиотеки nss на клиентах. Но последнее очень не рекомендуется.
Для того чтобы sendmail стал пользоваться для StartTLS длинным ключом необходимо в файл /etc/mail/sendmail.mc добавить опцию
define(`confDH_PARAMETERS', `/etc/mail/sendmail.dh')dnl
и сгенерировать dh файл
cd /etc/mail/ openssl dhparam -out sendmail.dh 4096 Generating DH parameters, 4096 bit long safe prime, generator 2 This is going to take a long time ....
Запаситесь терпением: операция генерации ключа такой длинны занимет немало времени.
После чего скомпилировать конфиг и перезапустить sendmail
cd /etc/mail make service sendmail restart