Настройка SSL сертификатов (Let's Encrypt): различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к навигации Перейти к поиску
Нет описания правки
Починка разметки: ссылки и жирный шрифт из Markdown, лишние обратные косые черты в коде, заголовки — проверка вики 13.11.2026
 
Строка 260: Строка 260:
SSL сертификаты Let's Encrypt успешно настроены! Ваш сайт теперь защищен шифрованием.
SSL сертификаты Let's Encrypt успешно настроены! Ваш сайт теперь защищен шифрованием.


'''Для размещения ваших защищенных проектов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):'''
'''Для размещения ваших защищенных проектов на надежном хостинге рекомендуем воспользоваться услугами [https://ark-hoster.ru ARK-HOSTER.RU]:'''


* '''[Выделенные серверы](https://ark-hoster.ru/dedicated/)''' - для высоконагруженных проектов с SSL
* '''[https://ark-hoster.ru/dedicated/ Выделенные серверы]''' - для высоконагруженных проектов с SSL
* '''[VPS/VDS серверы](https://ark-hoster.ru/vpsgame/)''' - для небольших и средних проектов
* '''[https://ark-hoster.ru/vpsgame/ VPS/VDS серверы]''' - для небольших и средних проектов


Наши специалисты помогут с настройкой SSL сертификатов и обеспечением безопасности ваших сайтов!
Наши специалисты помогут с настройкой SSL сертификатов и обеспечением безопасности ваших сайтов!

Текущая версия от 08:10, 14 ноября 2026

Настройка SSL сертификатов (Let's Encrypt)

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что домен указывает на ваш сервер (A-запись в DNS).

2. Установка Certbot

Для Ubuntu/Debian

1. Обновите список пакетов:

sudo apt update

2. Установите Certbot:

sudo apt install certbot

3. Установите плагин для вашего веб-сервера:

sudo apt install python3-certbot-apache
sudo apt install python3-certbot-nginx

Для CentOS/RHEL/Fedora

1. Установите EPEL репозиторий:

sudo yum install epel-release

2. Установите Certbot:

sudo yum install certbot python3-certbot-apache

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

Автоматическая настройка для Apache

1. Получите сертификат и автоматически настроите Apache:

sudo certbot --apache -d example.com -d www.example.com

2. Следуйте инструкциям:

  • Введите email адрес для уведомлений
  • Согласитесь с условиями (A)
  • Выберите опцию перенаправления (2 - рекомендуется)

Автоматическая настройка для Nginx

1. Получите сертификат и автоматически настроите Nginx:

sudo certbot --nginx -d example.com -d www.example.com

2. Следуйте инструкциям аналогично Apache.

Ручная настройка (без автоматической конфигурации)

1. Получите только сертификат:

sudo certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com

2. Сертификаты будут сохранены в:

/etc/letsencrypt/live/example.com/

4. Проверка сертификата

1. Проверьте статус сертификатов:

sudo certbot certificates

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

sudo certbot renew --dry-run

3. Откройте сайт в браузере: https://example.com

5. Настройка автоматического обновления

Настройка cron задачи

1. Откройте crontab:

sudo crontab -e

2. Добавьте задачу обновления:

0 12 * * * /usr/bin/certbot renew --quiet
0 0 * * * /usr/bin/certbot renew --quiet

Настройка systemd таймера

1. Проверьте статус таймера:

sudo systemctl status certbot.timer

2. Включите автозапуск:

sudo systemctl enable certbot.timer

6. Настройка для Apache

Ручная настройка виртуального хоста

1. Создайте файл конфигурации SSL:

sudo nano /etc/apache2/sites-available/example.com-ssl.conf

2. Добавьте конфигурацию:

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
    
    <Directory /var/www/example.com/public_html>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

3. Включите SSL модуль и сайт:

sudo a2enmod ssl
sudo a2ensite example.com-ssl.conf
sudo systemctl restart apache2

7. Настройка для Nginx

Ручная настройка SSL в Nginx

1. Отредактируйте конфигурацию сайта:

sudo nano /etc/nginx/sites-available/example.com

2. Добавьте SSL конфигурацию:

server {
listen 443 ssl http2;
server_name example.com www.example.com;
root /var/www/example.com/public_html;
index index.html index.php;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}

3. Проверьте конфигурацию и перезапустите Nginx:

sudo nginx -t
sudo systemctl restart nginx

8. Настройка файрвола

Для Ubuntu/Debian (ufw)

1. Разрешите HTTPS трафик:

sudo ufw allow 443/tcp
sudo ufw allow 80/tcp

Для CentOS/RHEL (firewalld)

1. Разрешите HTTPS и HTTP:

sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

9. Дополнительные настройки безопасности

Настройка HSTS

1. Для Apache добавьте в конфигурацию:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

2. Для Nginx добавьте:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Настройка OCSP Stapling

1. Для Apache добавьте:

SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

2. Для Nginx добавьте:

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

10. Мониторинг и уведомления

Настройка уведомлений по email

1. Создайте скрипт для проверки сертификатов:

sudo nano /usr/local/bin/ssl-check.sh

2. Добавьте содержимое:

DOMAIN="example.com"
DAYS=30
CERT_PATH="/etc/letsencrypt/live/$DOMAIN/cert.pem"
if [ -f "$CERT_PATH" ]; then
EXPIRY_DATE=$(openssl x509 -enddate -noout -in "$CERT_PATH" | cut -d= -f2)
EXPIRY_EPOCH=$(date -d "$EXPIRY_DATE" +%s)
CURRENT_EPOCH=$(date +%s)
DAYS_LEFT=$(( (EXPIRY_EPOCH - CURRENT_EPOCH) / 86400 ))
if [ $DAYS_LEFT -lt $DAYS ]; then
echo "SSL сертификат для $DOMAIN истекает через $DAYS_LEFT дней!" | mail -s "SSL сертификат истекает" admin@example.com
fi
fi

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/ssl-check.sh

4. Добавьте в crontab:

0 9 * * * /usr/local/bin/ssl-check.sh

11. Устранение неполадок

Частые проблемы

1. Ошибка "Domain validation failed":

  • Проверьте, что домен указывает на ваш сервер
  • Убедитесь, что порты 80 и 443 открыты

2. Ошибка "Too many requests":

  • Let's Encrypt имеет лимит 5 сертификатов в неделю на домен
  • Подождите или используйте staging окружение

3. Ошибка "Certificate not found":

  • Проверьте путь к сертификатам
  • Убедитесь, что сертификат был получен успешно

Проверка сертификата

1. Проверьте детали сертификата:

openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -text -noout

2. Проверьте цепочку сертификатов:

openssl verify -CAfile /etc/letsencrypt/live/example.com/chain.pem /etc/letsencrypt/live/example.com/cert.pem

12. Дополнительные возможности

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

1. Установите DNS плагин:

sudo apt install python3-certbot-dns-cloudflare

2. Получите wildcard сертификат:

sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/cloudflare.ini -d "*.example.com" -d example.com

Использование staging окружения

1. Получите тестовый сертификат:

sudo certbot --staging -d example.com

2. После успешного тестирования получите реальный сертификат:

sudo certbot -d example.com

Заключение

SSL сертификаты Let's Encrypt успешно настроены! Ваш сайт теперь защищен шифрованием.

Для размещения ваших защищенных проектов на надежном хостинге рекомендуем воспользоваться услугами ARK-HOSTER.RU:

Наши специалисты помогут с настройкой SSL сертификатов и обеспечением безопасности ваших сайтов!