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

Как исправить SSL почтового сервера?

Наш почтовый сервер изначально был настроен с использованием самостоятельно созданных сертификатов. Однако, когда они истекли, и я попытался их воссоздать, все просто взорвалось. Поскольку я знаю, что это будет важно, мы запускаем сервер Debian и postfix.

Теперь я вижу эти ошибки в почтовых журналах:

May 15 08:06:34 letterpress postfix/smtpd[22901]: warning: cannot get certificate from file /etc/postfix/ssl/smtpd.cert
May 15 08:06:34 letterpress postfix/smtpd[22901]: warning: TLS library problem: 22901:error:02001002:system library:fopen:No such file or directory:bss_file.c:352:fopen('/etc/postfix/ssl/smtpd.cert','r'):
May 15 08:06:34 letterpress postfix/smtpd[22901]: warning: TLS library problem: 22901:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
May 15 08:06:34 letterpress postfix/smtpd[22901]: warning: TLS library problem: 22901:error:140DC002:SSL routines:SSL_CTX_use_certificate_chain_file:system lib:ssl_rsa.c:720:
May 15 08:06:34 letterpress postfix/smtpd[22901]: cannot load RSA certificate and key data

И при попытке получить доступ к электронной почте от клиента, такого как Thunderbird, из-за пределов нашей локальной сети, вы получаете сообщение «Невозможно подключиться к серверу smtp».

Я убедился, что файл /etc/postfix/ssl/smtpd.cert действительно существует. Текущий владелец файла: root:root. Это нужно менять?

Ваш /etc/postfix/main.cf будет содержать следующие три директивы.

 smtpd_tls_cert_file=
 smtpd_tls_key_file=
 smtpd_use_tls=yes

Это говорит Postfix использовать TLS.

Вы можете снова заставить его работать, отключив TLS или создав новые сертификаты.

Отключение TLS

  1. + Изменить smtpd_use_tls от да до нет
  2. /etc/init.d/postfix перезапуск

Создание новых сертификатов

  1. Найдите ключевой файл (согласно smtpd_tls_key_file). Если он отсутствует, вам придется создать новый. (openssl genrsa -out filename.key 1024; chmod 600 filename.key)
  2. Создать CSR (openssl req -new -key имя_файла.key -out имя_файла.csr)
  3. Создайте сертификат (openssl x509 -req -days 730 -in filename.csr -signkey filename.key -out filename.crt)
  4. Сделайте это в формате .pem (cat filename.key filename.crt> filename.pem; chmod 600 filename.pem; chown postfix filename.pem)

Затем убедитесь, что он находится там, где он должен быть в соответствии с /etc/postfix/main.cfи перезапустите Postfix. Тебе должно быть хорошо.

Может показаться, что у вас проблема в "/etc/postfix/ssl/smtpd.cert": либо файл отсутствует, либо права доступа к нему неверны, либо формат сертификата внутри него недействителен.

У меня была такая проблема. Оказалось, что имя моего закрытого ключа было почтовым сервером.pem и все же в конфигурации postfix это был почтовый сервер.ключ. Я следил за учебником, в котором оба были с расширением .pem.

У меня также были и сертификат, и закрытый ключ, доступные для чтения только root, и я изменил это так, чтобы они были доступны для чтения как root, так и postfix (chown root: postfix filename; chmod 640 filename). Не уверен, нужен ли этот второй шаг.