Назад | Перейти на главную страницу

Ошибка Dovecot: ssl включен, но ssl_cert не установлен

Я несколько дней пытался установить 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