Я использую Dovecot 2.2.21
Я установил ssl_dh_parameters_length = 4096
. До этого я установил 2048
. После изменения я перезагрузил Dovecot.
С тех пор SSL больше не работает, и я получаю эти логи в/var/log/dovecot.err
:
Jan 10 17:03:41 mail dovecot: ssl-params: Fatal: Timeout while waiting for /var/db/dovecot/ssl-parameters.dat generation to complete
Есть ли способ увеличить время ожидания или увеличить параметры DH в фоновом режиме?
Эта ошибка на самом деле означает, что не удалось открыть файл, в который нужно сохранить. Выглядит немного неаккуратно. Нет тайм-аута для слишком долгой генерации параметров, только для того, чтобы получить блокировку для файла, в который он хочет записать. Смотрите код на http://hg.dovecot.org/dovecot-2.2/file/42b5cde2d560/src/ssl-params/ssl-params.c и конкретно:
/* If multiple dovecot instances are running, only one of them needs
to regenerate this file. */
ret = file_wait_lock(fd, temp_path, F_WRLCK,
FILE_LOCK_METHOD_FCNTL,
SSL_BUILD_PARAM_TIMEOUT_SECS, &lock);
if (ret < 0)
i_fatal("file_try_lock(%s) failed: %m", temp_path);
if (ret == 0) {
/* someone else is writing this */
i_fatal("Timeout while waiting for %s generation to complete",
path);
}
Это может означать, что запущен другой экземпляр, или временный файл не очистился должным образом, или что-то еще. Попробуйте закрыть все экземпляры dovecot, удалив файл, который он пытался открыть, и, если он есть, его версию .tmp, а затем снова запустите dovecot. Надеюсь, это поможет вам.