Я пытаюсь создать почтовый сервер, но не могу подключиться к домену моей капли DO, что мне нужно сделать, чтобы получить SSL-сертификат Let's Encrypt. Он отказывается от связи. letdebug.net сообщает:
[Мое доменное имя] имеет запись A (IPv4) ([IP-адрес моей капли)), но запрос на этот адрес через порт 80 не удалось. У вашего веб-сервера должен быть хотя бы один рабочий IPv4- или IPv6-адрес.
71 мс: Испытываемая ошибка: наберите tcp [IP-адрес моей капли]: 80: connect: соединение отклонено
Итак, я решил попробовать запустить sudo netstat -nlp
, который вывел следующее:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 2882/mysqld
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2882/mysqld
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 493/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 768/sshd: /usr/sbin
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 146987/master
tcp6 0 0 :::22 :::* LISTEN 768/sshd: /usr/sbin
tcp6 0 0 :::25 :::* LISTEN 146987/master
udp 0 0 127.0.0.53:53 0.0.0.0:* 493/systemd-resolve
raw6 0 0 :::58 :::* 7 490/systemd-network
raw6 0 0 :::58 :::* 7 490/systemd-network
И явно ничего не слушает порт 80. Как мне заставить что-то это слушать? Мне нужно установить Nginx или что-то еще, а именно настроить веб-сервер? Зачем мне это нужно? Означает ли это, что мне нужен встроенный веб-сервер для установки почтового сервера? Я новичок в этом деле.
Мне сказали, что это требуется только для сертификата Let's Encrypt. В этом руководстве dovecot.pem
используется как для файла сертификата, так и для файла ключа. Будет ли этого достаточно, если я использую Dovecot?
Обновление: для моего поддомена не найден IP-адрес
По совету Майкла Хэмптона я попробовал sudo certbot certonly --standalone -d mail.example.com
вставил мой собственный почтовый поддомен и, похоже, открыл еще одну банку червей:
Detail: No valid IP addresses found for [my mail subdomain]
Это немного сбивает с толку. Возможно, я неправильно установил запись MX? Я перечислю свои DNS-записи (я заблокировал IP-адрес и доменное имя своего дроплета, так как я не знаю, безопасно ли делиться этими вещами через Интернет. Если они необходимы, и это безопасно, у меня есть нет проблем, не отредактировать это):
Здесь все отредактированные биты в столбце «Значение» скрываются IP-адресом капли, а отредактированные биты в имени хоста скрывают URL-адрес моего домена.
Вы можете использовать certbot
в автономном режиме для получения сертификатов для сервисов, отличных от веб-сайта. Например:
sudo certbot certonly --standalone -d mail.example.com
В этом режиме certbot запускает свой собственный внутренний веб-сервер, чтобы HTTP-запрос мог быть завершен, а затем останавливает его в конце.
Ваши закрытые ключи и сертификаты, а точнее ссылки на них, которые останутся неизменными даже при последующем обновлении сертификатов, будут находиться в каталоге /etc/letsencrypt/live
. Затем вы можете настроить Postfix, Dovecot, или что вы там используете, чтобы найти их там. Например, ваша цепочка сертификатов будет /etc/letsencrypt/live/mail.example.com/fullchain.pem
, а закрытый ключ будет /etc/letsencrypt/live/mail.example.com/privkey.pem
.
Почтовый сервер ни в коем случае не требует наличия веб-сервера, это две совершенно разные службы. Однако получение SSL-сертификата от Lets Encrypt, очевидно, требует наличия веб-сервера, поскольку эти сертификаты выдаются для веб-серверов.
Вам не нужен "официальный" сертификат (например, от Lets Encrypt), если вы планируете использовать его только для почтового сервера. Вы вполне можете использовать самоподписанные сертификаты, так как во время SMTP-трассировки сертификаты НЕ проверяются между серверами.
Вам нужен веб-сервис (не обязательно традиционный веб-сервер) для автоматизации сертификата Let's Encrypt с аутентификацией HTTP1. Для почты как таковой он не нужен. Существуют и другие способы получения сертификатов.