Я пытаюсь установить postfix и dovecot на сервере LEMP. Я использую сертификаты letsencrypt. Я подозреваю, что у меня проблема с разрешениями, потому что я не могу получить доступ к /etc/letsencrypt/live
папка с использованием cd
если я не поставлю перед ним sudo su
команда.
Похоже, это влияет на мою конфигурацию dovecot, потому что dovecot выдает следующую фатальную ошибку:
doveconf: Fatal: Ошибка в файле конфигурации /etc/dovecot/conf.d/10-ssl.conf, строка 13: ssl_key: Не удается открыть файл / etc / letsencrpyt /
Я несколько раз проверил свой сертификат letsencrypt и путь pemchain в настройках dovecot, и они верны. Похоже, что кое-что еще блокирует доступ dovecot к моей цепочке сертификатов. Я предполагаю, что это то же самое, что не позволит мне получить доступ к моей цепочке, не будучи root.
Верх моей страницы /etc/dovecot/conf.d/10-ssl.conf выглядит так:
##
## SSL settings
##
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = required
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
ssl_cert = </etc/letsencrypt/live/mail.mysite.com/fullchain.pem
ssl_key = </etc/letsencrpyt/live/mail.mysite.com/privkey.pem
В моем /etc/dovecot/conf.d/10-ssl.conf следующие строки раскомментированы и отредактированы. На самом деле я не использую mail.mysite.com:
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.mysite.com/fullchain.pem
ssl_key = </etc/letsencrpyt/live/mail.mysite.com/privkey.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = </usr/share/dovecot/dh.pem
Результат:
ls -l /etc | grep letsencrypt
drwxr-xr-x 9 root root 4096 Feb 20 12:44 letsencrypt
У меня вопрос: как я могу исправить указанную выше ошибку и разрешить dovecot правильно обращаться к моему пути сертификата letsencrypt?
Чтобы решить эту проблему, мне просто нужно было написать ssl_key = </etc/letsencrpyt
правильно для моего ssl_key.
Правильный синтаксис:
ssl_key = </etc/letsencrypt/live/mail.mysite.com/privkey.pem
НЕ
ssl_key = </etc/letsencrpyt/live/mail.mysite.com/privkey.pem
Чертова орфография. :) Сам не уловил с первого раза. У тебя есть letsencrPYt
в вашей конфигурации, и это также ясно показано в сообщении об ошибке.