Podczas ostatnich aktualizacji paru Debianów do wersji 10 (Buster) natknąłem się na taki problem, że po aktualizacji niektóre usługi nie wstały, a w logach były wpisy klasy:
OpenSSL: error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small
W moim przypadku dotyczyły to m.in. usług dovecot oraz openssl.
Okazuje się, że w Debianie 10 domyślnie wymagany jest klucz DH o długości min. 2048, co wynika z domyślnej konfiguracji openssl dla całego systemu. Domyślnie wymagane jest też TLS 1.2 (wcześniej TLS 1.0). To również może powodować problemy z komunikacją, które nie wspierają TLS 1.2. Odpowiedzialne za to są wpisy pod koniec pliku /etc/ssl/openssl.cnf
:
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2
Rozwiązaniem dla zbyt krótkiego klucza DH jest wygenerowanie nowego klucza odpowiedniej długości (jest o tym jednoznaczne info w pliku konfiguracyjnym dovecot – duży plus) lub pobrania go z sieci (https://wiki.mozilla.org/Security/Archive/Server_Side_TLS_4.0#Pre-defined_DHE_groups).
openssl dhparam -out dh2048.pem 2048