====== Certbot ====== Проверить сертификат Let's Encrypt: [[https://www.ssllabs.com/ssltest/|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 автоматически: * Проверит владение доменом. * Получит сертификат от Let's Encrypt. * Обновит конфиг Nginx для использования HTTPS. * Настроит автоматическое обновление сертификата. ==== Обновите конфиг 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 предложит: * Ввести email для уведомлений о продлении. * Принять условия Let's Encrypt (нажмите A для согласия). * Выбрать домен(ы), для которых нужно получить сертификат (если на сервере несколько виртуальных хостов). После успешного выполнения Certbot автоматически: * Получит сертификат. * Настроит Apache на использование HTTPS. * Создаст редирект с HTTP на HTTPS (если согласитесь). ==== Проверка автоматического обновления сертификата ==== certbot renew --dry-run ==== Вручную обновить сертификаты ==== certbot renew ==== Проверить конфигурацию Apache ==== Certbot изменяет конфиги Apache, например: * ''/etc/apache2/sites-available/ваш_сайт.conf'' (Debian/Ubuntu) * ''/etc/httpd/conf.d/ваш_сайт.conf'' (CentOS/RHEL) Там должны быть строки SSLEngine on SSLCertificateFile /etc/letsencrypt/live/ваш_домен/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/ваш_домен/privkey.pem # Другие настройки... ==== Перезапустить Apache ==== # Для Ubuntu/Debian sudo systemctl restart apache2 # Для CentOS/RHEL sudo systemctl restart httpd