From 534f950565ba00569c831c54930cedf1a59bbd1f Mon Sep 17 00:00:00 2001 From: Arity-T Date: Wed, 22 Jan 2025 12:16:50 +0300 Subject: [PATCH] =?UTF-8?q?Nginx.=20SSL-=D1=81=D0=B5=D1=80=D1=82=D0=B8?= =?UTF-8?q?=D1=84=D0=B8=D0=BA=D0=B0=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/misc/nginx.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 docs/misc/nginx.md diff --git a/docs/misc/nginx.md b/docs/misc/nginx.md new file mode 100644 index 0000000..b9f7935 --- /dev/null +++ b/docs/misc/nginx.md @@ -0,0 +1,50 @@ + + +## SSL-сертификат с certbot + +!!! tip "Актуальная версия Python" + + Обычно системый `Python` достаточно старый. Для установки `certbot` может потребоваться более новая версия. Минимальные требования можно узнать на [pypi](https://pypi.org/project/certbot/). + + ```sh + sudo apt update + sudo add-apt-repository ppa:deadsnakes/ppa + + # Вместо 3.1x нужно указать актуальную версию Python + sudo apt install python3.1x python3.1x-venv + ``` + + Теперь вместо `python3` можно использовать `python3.1x`. + +SSL-сертификат получается и устанавливается с помощью [certbot](https://github.com/certbot/certbot). На их сайте есть подробная пошаговая [инструкция](https://certbot.eff.org/instructions?ws=nginx&os=pip) о том, как правильно его установить, получить сертификаты и включить их автообновление. + +??? note "Установка вкратце" + + ```sh { .code-wrap } + # Установили certbot в venv + # Вместо 3.1x нужно указать актуальную версию Python + sudo python3.x -m venv /opt/certbot/ + sudo /opt/certbot/bin/pip install --upgrade pip + sudo /opt/certbot/bin/pip install certbot certbot-nginx + + # Добавили в PATH + sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot + + # Автообновление сертификатов + echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null + ``` + + +Несколько полезных команд. + +```sh +# Получить сертификат для определённого домена. Предварительно нужно +# настроить конфиг nginx для этого домена. +sudo certbot --nginx -d example.com -d www.example.com + +# Список сертификатов со сроками их жизни +sudo certbot certificates + +# Удалить сертификат (команда предложит выбор) +sudo certbot delete +``` \ No newline at end of file