Содержание

Certbot

Проверить сертификат Let's Encrypt: SSL Labs

Nginx, Python

Установите Certbot и его плагин для Nginx

apt install certbot python3-certbot-nginx

Настройте Nginx

Убедитесь, что у вас есть рабочий конфиг Nginx для вашего сайта (например, /etc/nginx/sites-available/your_project).

server {
    listen 80;
    server_name your-domain.com www.your-domain.com;

    location / {
        proxy_pass http://localhost:8000;  # Порт вашего Python-приложения
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Проверьте синтаксис и перезапустите Nginx

nginx -t
systemctl reload nginx

Получите SSL-сертификат

Запустите Certbot с плагином для Nginx

certbot --nginx -d your-domain.com -d www.your-domain.com

Certbot автоматически:

Обновите конфиг Nginx для HTTPS

Certbot изменит ваш конфиг, добавив SSL-настройки. Пример итогового файла

server {
    listen 443 ssl;
    server_name your-domain.com www.your-domain.com;

    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

server {
    listen 80;
    server_name your-domain.com www.your-domain.com;
    return 301 https://$host$request_uri;
}

Проверьте автоматическое обновление

Certbot добавляет задание в cron для автоматического обновления сертификатов. Проверить можно так

certbot renew --dry-run

Перезапустите Nginx

sudo systemctl restart nginx

Apache

Установка Certbot и плагина для Apache

apt install certbot python3-certbot-apache

Получение SSL-сертификата

Запустите Certbot в режиме Apache

certbot --apache

Certbot предложит:

После успешного выполнения Certbot автоматически:

Проверка автоматического обновления сертификата

certbot renew --dry-run

Вручную обновить сертификаты

certbot renew

Проверить конфигурацию Apache

Certbot изменяет конфиги Apache, например:

Там должны быть строки

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/ваш_домен/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/ваш_домен/privkey.pem
    # Другие настройки...
</VirtualHost>

Перезапустить Apache

# Для Ubuntu/Debian
sudo systemctl restart apache2

# Для CentOS/RHEL
sudo systemctl restart httpd