====== 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