Настройка Nginx на получение сертификата Let’s Encrypt с авто продлением без snapd Ubuntu 22.04 в 2 клика

Если вы уже избавились от snapd, продолжим устанавливать и настраивать Ngnix. Если нет скопируйте и вставьте в терминал команду ниже:

sudo systemctl stop snapd && sudo systemctl disable snapd && sudo apt purge snapd && rm -rf ~/snap && sudo rm -rf /snap /var/snap /var/lib/snapd /var/cache/snapd /usr/lib/snapd /root/snap

Установим Nginx с certbot, создадим директории, файлы html, даем им права, активируем. Скопируйте код в редактор, и замените домены на свои, или удалите лишние(делалось под Ejabberd):

apt update && apt upgrade && apt install certbot python3-certbot-nginx && mkdir -p /var/www/example.com/html && sudo chown -R $USER:$USER /var/www/example.comhtml && nano /var/www/example.com/html/index.html && nano /etc/nginx/sites-available/example.com && sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ && nano /etc/nginx/nginx.conf && sudo nginx -t && sudo systemctl restart nginx && certbot --nginx -d example.com -d www.example.com


#/var/www/example.com/html/index.html просто сохраняете ctl O,выход Ctl X. Добавить в каждый(будет открываться) /etc/nginx/sites-available/example.com и его поддомены(если есть), подставляя свои домены и поддомены, в каждый файл(сохраняете ctl O,выход Ctl X далее откроется новы файл.
server {
        listen 80;
        listen [::]:80;

        root /var/www/example.com.ru/html;
        index index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ =404;
        }
}
#когда откроется /etc/nginx/nginx.conf раздокументировать server_names_hash_bucket_size 64

#Либо одной командой для каждого домена(не проверял)
echo 'server {
        listen 80;
        listen [::]:80;

        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ =404;
        }
}' | sudo tee -a /etc/nginx/sites-available/example.com


#Дальше запуститься установка сертификатов certbot --nginx -d example.com -d www.example.com , поменяйте домены на свои в коде.

Готово. Проверьте таймер и автопродление запустив:

systemctl status certbot.timer && certbot renew --dry-run