17.11.2023
Итак, первым делом нам необходимо установить пакеты, которые потребуются для работы:
sudo apt-get update
sudo apt-get install software-properties-common
apt install python3-certbot-nginx
Ок, пакеты установлены, теперь пробуем сгенерировать сертификаты (для хоста mail.host.ru):
certbot certonly --standalone -d mail.host.ru
Нам задаются некоторые вопросы, но на шаге генерации ошибка - 80 порт занят. Упс...
Прерываем процесс нажатием "с" и решаем этот вопрос. Как решаем? Самое простое будет остановить наш веб-сервер, более координальное - отключить 80 порт на сервере.
1 вариант: остановить веб сервер. Команда ниже:
systemctl stop nginx
2 вариант: отключение 80 порта на веб-сервере.
В текущих реалиях нашего времени его использование небезопасно и почти все сайты работают на защищённом соединении, поэтому попросту "замувим" конфиг nginx'а:
cd /etc/nginx/sites-enabled
mv 00-default.conf 00-default.conf.bak
И перезапустим наш веб-сервер nginx:
systemctl stop nginx
systemctl start nginx
Выбирайте любой удобный вам способ, а мы идём далее, опять запускаем процесс получения сертификата:
certbot certonly --standalone -d mail.host.ru
Иии мы получаем ошибку:
У вас может не быть этой ошибки, но даже хорошо, что она есть, я добавлю некоторые дополнения к этому вопросу.
Итак, нам необходимо, чтоб снаружи наше доменное имя почтового сервера резолвилось верно - то есть было прописано в DNS, поэтому если это не сделано - быстренько бежим в DNS-настройки у регистратора (или где они у вас) и добавляем А-запись к нашему серверу, пусть это будет запись
mail, а ваше доменное имя -
host.ru, после чего наш хост будет определяться по доменному имени и слать на наш IP адрес сервера (конечно, в А-записи вы его укажете, без этого никак).
Но этого недостаточно, нам необходимо сделать проброс 80-ого порта на наш почтовый сервер, для этого мы идём на роутер и делаем там проброс, я покажу на примере роутера Mikrotik:
И на вкладке Action примерно это:
Ну и теперь после выполнения команды
certbot certonly --standalone -d mail.host.ru получим долгожданный ответ:
Отлично! Мы сгенерировали сертификаты для нашего сервера, ура!
Но есть одно но... - сертификаты пока лежат в отдельной папке и о них не знает ни почтовый сервер, ни наш веб-сервер. И как же им это всё "скормить", спросите вы?
Об этом читайте в другой статье, "
Подключение сертификатов Lets'encrypt к почтовому серверу"
Удачи вам в настройке, если будут вопросы - пишите.
На связи ;)