Я несколько дней пытался установить Postfix и Dovecot и думаю, что решил все проблемы, кроме одной, которая только что возникла. Когда я пытаюсь перезапустить Dovecot, я получаю следующее сообщение об ошибке:
doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf: ssl enabled, but
ssl_cert not set
[....] Restarting IMAP/POP3 mail server: dovecotdoveconf: Fatal: Error in configuration
file /etc/dovecot/dovecot.conf: ssl enabled, but ssl_cert not set
Когда я проверяю dovecot.conf, ничего не говорится о ssl, поэтому я предполагаю, что ошибка связана с настройками в 10-ssl.conf
. Заметил, что настройки закомментированы:
# ssl = no
# ssl_cert = </etc/ssl/dovecot.pem
# ssl_key = </etc/ssl/private/dovecot.pem
Я знаю, что они были раскомментированы раньше, но если я сейчас раскомментирую, то при запуске получу другую ошибку о неожиданном значении ssl в 10-ssl.conf. Из вики Dovecot это значение должно быть установлено, даже если оно перезаписано определенным протоколом в другом месте.
Если я оставлю закомментированные значения ssl, я получаю первое сообщение об ошибке о том, что ssl включен, но не установлен.
Раньше я создавал самозаверяющий сертификат с помощью OpenSSL и не получал сообщений об ошибках о том, что ssl не настроен. Фактически, я смог войти в систему для всплывающих окон с другого клиентского компьютера, и он выдал обычное предупреждение о том, что сертификат ненадежен. Однако я заметил, что в сертификате указано неправильное имя хоста, и это было вызвано ранее после того, как я перестроил свой VPS и по глупости установил и настроил Dovecot с неправильным именем хоста.
Я очистил все файлы и переустановил. Я снова удалил все ключи и пару раз регенерировал с помощью OpenSSL, но теперь я даже не могу запустить Dovecot из-за этой ошибки. Я застрял, и мне было интересно, как мне подойти к этому. Возможно ли, что что-то в Postfix, ссылающееся на Dovecot, является причиной этого?
Некоторые сайты рекомендуют проверять синтаксис, например ssl_cert = </etc
против ssl_cert = /etc
но это не имело значения. Я также был бы счастлив просто временно отключить ssl, чтобы обойти ошибку, но это тоже не удается.
Только что я попытался создать символическую ссылку на готовые ключи в /etc/dovecot
и /etc/dovecot.pem
но я получаю то же сообщение.
Однако старый пост: ошибка возникает из-за того, что в главном файле конфигурации dovecot.conf должна быть строка: "! Include conf.d / *. Conf" в конце.
В противном случае он не загрузит файлы конфигурации, которые у вас есть внутри "conf.d /".
Я думаю, что это причина, по которой вы не получаете никакой разницы от изменения настроек в файлах конфигурации в "conf.d /"
Кроме того, почему он говорит, что SSL включен, если он не установлен в 10-ssl.conf или dovecot.conf? Где это включается?
Это потому, что конфигурация по умолчанию - ssl = yes. Отсутствие включения файла 10-ssl.conf, в котором вы могли бы либо деактивировать ssl, либо установить файл сертификата, дает вам такой результат.
Моя конфигурация Dovecot в dovecot/conf.d/10-ssl.conf
, который работает на двух разных серверах:
ssl = yes
ssl_cert = </path/to/cert.file
ssl_key = </path/to/key.file
Я использую центр сертификации, поэтому у меня также есть:
ssl_ca = </path/to/ca-bundle.pem
Прошло некоторое время с тех пор, как я настроил серверы, но я помню, что у меня были проблемы с Dovecot, и я считаю, что они были отдельно от Postfix.
Я не уверен насчет непредвиденной ошибки значения. Когда вы раскомментировали, вы изменили ssl = no
к ssl = yes
? Я также знаю, что OpenSSL немного требователен к разрешениям файлов. Мой ключевой файл принадлежит root: root и имеет 400 разрешений.
Проверьте 20-imap.conf (http://wiki2.dovecot.org/SSL/DovecotConfiguration):
protocol imap {
ssl_cert = </etc/ssl/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
}
и 10-ssl.conf: ssl_parameters_regenerate = 0
<< - по умолчанию 168 часов
Upd:
doveconf -a | grep ssl