我正在使用 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 Params?
答案1
该错误实际上意味着它无法打开它想要保存的文件。措辞似乎有点不当。没有因为实际生成参数花费太长时间而超时,只是因为它获取了它想要写入的文件的锁。请参阅以下代码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。希望这能帮你解决。