SSL/TLS сертификаты в cPanel

Материал из wiki.p3.ru
Версия от 16:30, 27 января 2026; TTK (обсуждение | вклад) (Внешние ссылки)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

SSL/TLS сертификаты в cPanel

SSL/TLS сертификаты обеспечивают защищенное HTTPS соединение между браузером посетителя и вашим сайтом, шифруя передаваемые данные.

Зачем нужен SSL

Преимущества HTTPS

  1. Безопасность
    • Шифрование данных (пароли, платежная информация)
    • Защита от перехвата трафика (man-in-the-middle атаки)
    • Подтверждение подлинности сайта
  2. SEO
    • Google повышает рейтинг HTTPS сайтов
    • Лучшая видимость в поисковой выдаче
  3. Доверие пользователей
    • Зеленый замочек в адресной строке
    • Нет предупреждений "Небезопасно"
    • Увеличение конверсии
  4. Требования
    • Обязателен для ecommerce
    • Необходим для современных API
    • Требуется для HTTP/2 и HTTP/3

Шаблон:Важно

Типы SSL сертификатов

По уровню проверки

Тип Проверка Время выдачи Стоимость Когда использовать
DV (Domain Validation) Только домен Минуты Бесплатно/дешево Блоги, личные сайты, большинство сайтов
OV (Organization Validation) Домен + организация Дни Средняя Корпоративные сайты
EV (Extended Validation) Полная проверка компании Недели Высокая Банки, магазины, финансы

По покрытию доменов

Single Domain
Один домен (example.com)
Wildcard
Домен и все поддомены (*.example.com)
Multi-Domain (SAN)
Несколько разных доменов в одном сертификате

Let's Encrypt (бесплатный SSL)

Let's Encrypt - бесплатный центр сертификации, поддерживаемый cPanel.

Установка Let's Encrypt SSL

  1. Войдите в cPanel
  2. В разделе SECURITY выберите SSL/TLS Status
  3. Найдите ваш домен в списке
  4. Если статус "Not Secure", нажмите Run AutoSSL
  5. Или отметьте домен и нажмите Run AutoSSL внизу
  6. Дождитесь завершения (обычно 1-5 минут)
  7. Статус изменится на "Secure" (зеленая галочка)

Шаблон:Совет

Что включает AutoSSL

AutoSSL выпускает сертификаты для:

  • Основной домен (example.com)
  • WWW версия (www.example.com)
  • Поддомены
  • Почтовый сервер (mail.example.com)
  • cPanel (cpanel.example.com)
  • Webmail (webmail.example.com)

Проверка статуса AutoSSL

  1. SSL/TLS Status
  2. Просмотрите статусы:
    • Secure (зеленая галочка) - сертификат установлен
    • Not Secure (красный крест) - нет сертификата
    • Partially Secure (желтый треугольник) - смешанный контент

Автоматическое продление

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

  • Проверяет сертификаты каждые 24 часа
  • Продлевает за 30 дней до истечения
  • Отправляет уведомления о проблемах

Проверка:

  1. Перейдите в AutoSSL
  2. Просмотрите:
    • Last Run - последний запуск
    • Next Run - следующий запуск
    • Status - статус

Решение проблем AutoSSL

Ошибка: Domain control validation failed

Причины:

  • DNS не указывает на сервер
  • Файрвол блокирует проверку
  • Сайт защищен паролем

Решение:

  1. Проверьте A-запись домена
  2. Временно отключите защиту паролем (.htaccess)
  3. Убедитесь, что порт 80 открыт

Ошибка: CAA records prevent issuance

CAA (Certification Authority Authorization) запись блокирует выдачу.

Решение:

  1. Перейдите в Zone Editor
  2. Найдите CAA записи
  3. Добавьте Let's Encrypt:
example.com CAA 0 issue "letsencrypt.org"
example.com CAA 0 issuewild "letsencrypt.org"

Некоторые поддомены не получили сертификат

Причины:

  • Поддомен не имеет A-записи
  • Поддомен указывает на другой сервер
  • Превышен лимит (100 поддоменов на сертификат)

Решение:

  1. Проверьте DNS записи
  2. Создайте отдельный сертификат для поддомена
  3. Используйте wildcard сертификат

Установка собственного SSL

Если у вас есть коммерческий SSL сертификат:

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

  1. Приобретите у провайдера (Comodo, DigiCert, Sectigo и др.)
  2. Или получите от корпоративного CA
  3. Сгенерируйте CSR (Certificate Signing Request)

Генерация CSR в cPanel

  1. Перейдите в SSL/TLS
  2. Выберите Generate, view, or delete SSL certificate signing requests
  3. Заполните форму:

Обязательные поля:

  • Key Size: 2048 bits (рекомендуется) или 4096
  • Domain(s): example.com или *.example.com для wildcard
  • Common Name: полное доменное имя (FQDN)
  • Email: ваш email
  • Company Name: название компании (для OV/EV)
  • Company Division: отдел
  • City: город
  • State: область/штат
  • Country: код страны (RU для России)
  1. Нажмите Generate
  2. Скопируйте CSR (блок -----BEGIN CERTIFICATE REQUEST-----)
  3. Отправьте CSR в центр сертификации

Шаблон:Важно

Установка SSL сертификата

После получения сертификата от CA:

  1. Перейдите в SSL/TLS
  2. Выберите Manage SSL sites
  3. Выберите домен
  4. Вставьте компоненты сертификата:

Certificate (CRT):

-----BEGIN CERTIFICATE-----
MIIFazCCBFOgAwIBAgIRAIIQz7DSQ...
-----END CERTIFICATE-----

Private Key:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAusI/V52eqLb...
-----END RSA PRIVATE KEY-----

Certificate Authority Bundle (CA Bundle):

-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkq...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEFzCCAv+gAwIBAgIBADANBgkq...
-----END CERTIFICATE-----
  1. Нажмите Install Certificate
  2. Сертификат будет активирован

Автоматическая установка (AutoSSL)

Некоторые сертификаты можно установить автоматически:

  1. Вставьте сертификат в Install and Manage SSL
  2. cPanel автоматически определит домен
  3. Автозаполнит поля
  4. Нажмите Install

Управление SSL сертификатами

Просмотр установленных сертификатов

  1. SSL/TLSManage SSL sites
  2. Список всех доменов с SSL
  3. Информация:
    • Issuer (издатель)
    • Expires (срок действия)
    • Domains Covered (покрытые домены)

Информация о сертификате

  1. SSL/TLSManage SSL sites
  2. Нажмите Browse Certificates
  3. Выберите сертификат
  4. Просмотрите детали:
    • Subject (владелец)
    • Issuer (издатель)
    • Valid From/To (срок действия)
    • Serial Number
    • Signature Algorithm
    • Public Key

Удаление SSL сертификата

  1. Manage SSL sites
  2. Найдите домен
  3. Нажмите Uninstall
  4. Подтвердите удаление

Шаблон:Предупреждение

Перенаправление HTTP на HTTPS

После установки SSL настройте автоматическое перенаправление:

Метод 1: .htaccess (рекомендуется)

  1. Откройте File Manager
  2. Перейдите в public_html
  3. Редактируйте .htaccess (или создайте новый)
  4. Добавьте в начало файла:
# Перенаправление на HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Или для конкретного домена
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

Метод 2: Через Redirects

  1. Перейдите в DomainsRedirects
  2. Тип: Permanent (301)
  3. От: http://example.com
  4. На: https://example.com
  5. Отметьте Wild Card Redirect
  6. Нажмите Add

Метод 3: WordPress

В wp-config.php добавьте:

// Принудительный HTTPS для админ-панели
define('FORCE_SSL_ADMIN', true);

// Принудительный HTTPS для всего сайта
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
    $_SERVER['HTTPS']='on';

Проверка SSL конфигурации

Онлайн инструменты

  1. SSL Labs Test: SSL Server Test
    • Оценка от F до A+
    • Детальный анализ конфигурации
    • Проверка уязвимостей
  2. Why No Padlock: Why No Padlock
    • Поиск смешанного контента
  3. SSL Checker: SSL Checker
    • Проверка валидности сертификата
    • Проверка цепочки сертификатов

Проверка в браузере

  1. Откройте сайт в Chrome/Firefox
  2. Нажмите на замочек в адресной строке
  3. Connection is secureCertificate is valid
  4. Просмотрите информацию:
    • Issued to (кому выдан)
    • Issued by (кем выдан)
    • Valid from/to (срок действия)

Проверка через командную строку

# OpenSSL
openssl s_client -connect example.com:443 -servername example.com

# Проверка срока действия
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -dates

# Проверка цепочки
openssl s_client -connect example.com:443 -showcerts

Исправление смешанного контента

"Mixed Content" - когда HTTPS страница загружает HTTP ресурсы.

Типы смешанного контента

Passive Mixed Content
Изображения, видео, аудио
Показывается предупреждение в консоли
Active Mixed Content
Скрипты, стили, iframe, AJAX
Блокируется браузером!

Поиск смешанного контента

  1. Откройте сайт по HTTPS
  2. Откройте Dev Tools (F12)
  3. Вкладка Console
  4. Ищите предупреждения:
Mixed Content: The page at 'https://example.com/' 
was loaded over HTTPS, but requested an insecure image 
'http://example.com/image.jpg'

Исправление

Метод 1: Относительные URL

Замените абсолютные URL на относительные:

Было:

<img src="http://example.com/image.jpg">
<script src="http://example.com/script.js"></script>

Стало:

<img src="/image.jpg">
<script src="/script.js"></script>

Метод 2: Protocol-relative URL

Было:

<script src="http://external.com/script.js"></script>

Стало:

<script src="//external.com/script.js"></script>

Метод 3: Content Security Policy

В .htaccess:

Header always set Content-Security-Policy "upgrade-insecure-requests;"

Автоматически обновляет HTTP запросы к HTTPS.

Метод 4: Поиск и замена в БД (WordPress)

Используйте плагин Better Search Replace или SQL:

UPDATE wp_posts 
SET post_content = REPLACE(post_content, 
    'http://example.com', 
    'https://example.com');

UPDATE wp_options 
SET option_value = REPLACE(option_value, 
    'http://example.com', 
    'https://example.com');

Шаблон:Важно

Wildcard SSL сертификаты

Wildcard сертификаты покрывают домен и все его поддомены.

Покрытие

Сертификат для *.example.com покрывает:

  • sub1.example.com ✅
  • sub2.example.com ✅
  • any.example.com ✅
  • example.com ❌ (нужен отдельно)
  • sub.sub1.example.com ❌ (многоуровневые не покрываются)

Шаблон:Совет

Установка Wildcard через AutoSSL

Let's Encrypt wildcard требует DNS-01 challenge:

  1. Перейдите в AutoSSL
  2. Проверьте, поддерживает ли хостинг DNS-01
  3. Или установите вручную через:
    1. certbot certonly --manual --preferred-challenges=dns
    2. Добавьте TXT запись в DNS
    3. Завершите проверку

Wildcard от коммерческого CA

  1. Сгенерируйте CSR для *.example.com
  2. Приобретите wildcard сертификат
  3. Установите через Manage SSL sites

Продвинутые настройки

HSTS (HTTP Strict Transport Security)

Заставляет браузер использовать только HTTPS:

В .htaccess:

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

Параметры:

  • max-age - срок запоминания (в секундах)
  • includeSubDomains - применять к поддоменам
  • preload - добавление в список preload браузеров

Шаблон:Предупреждение

OCSP Stapling

Ускоряет проверку статуса сертификата:

Обычно настраивается на уровне сервера хостинг-провайдером.

Проверка:

openssl s_client -connect example.com:443 -status

Должно быть:

OCSP response: 
======================================
OCSP Response Status: successful (0x0)

Certificate Transparency

Автоматически логируется для Let's Encrypt.

Проверка:

  • crt.sh
  • Введите домен
  • Просмотрите выпущенные сертификаты

TLS версии

Современные конфигурации должны поддерживать:

  • TLS 1.3 ✅ (рекомендуется)
  • TLS 1.2 ✅ (минимум)
  • TLS 1.1 ❌ (устарел)
  • TLS 1.0 ❌ (небезопасен)
  • SSL 3.0 ❌ (критически уязвим)

Настраивается хостинг-провайдером в конфигурации Apache/Nginx.

Мониторинг срока действия

Получение уведомлений

  1. Let's Encrypt отправляет email за 20, 10, 1 день до истечения
  2. Проверяйте контактный email в Contact Information

Мониторинг сервисы

Проверка через cPanel

  1. SSL/TLS Status
  2. Просмотр срока действия для всех доменов
  3. Статусы обновляются ежедневно

Решение проблем

Предупреждение "Небезопасное подключение"

Причины:

  • Сертификат истек
  • Сертификат выдан для другого домена
  • Самоподписанный сертификат
  • Проблема с цепочкой сертификатов

Решение:

  1. Проверьте срок действия в SSL/TLS Status
  2. Убедитесь, что домен совпадает с Common Name
  3. Установите корректный CA Bundle
  4. Перевыпустите сертификат

Ошибка "NET::ERR_CERT_COMMON_NAME_INVALID"

Домен не соответствует сертификату.

Решение:

  1. Проверьте, для какого домена выдан сертификат
  2. Установите wildcard для поддоменов
  3. Или выпустите отдельный сертификат

Ошибка "NET::ERR_CERT_AUTHORITY_INVALID"

Браузер не доверяет издателю сертификата.

Причины:

  • Самоподписанный сертификат
  • Отсутствует промежуточный сертификат
  • Внутренний корпоративный CA

Решение:

  1. Установите полную цепочку (CA Bundle)
  2. Используйте сертификат от доверенного CA
  3. Добавьте корневой сертификат в браузер (для внутреннего CA)

AutoSSL не продлевает сертификат

Проверьте:

  1. Логи AutoSSL в cPanel
  2. DNS записи актуальны
  3. Сайт доступен по HTTP (для проверки)
  4. Нет блокировки файрволом
  5. Квота Let's Encrypt не превышена (50 сертификатов/неделю)

Ручное продление:

  1. SSL/TLS Status
  2. Run AutoSSL

Сайт недоступен после установки SSL

Проверьте:

  1. Порт 443 открыт на файрволе
  2. Apache/Nginx слушает на 443
  3. VirtualHost настроен для SSL
  4. Перезапустите веб-сервер

Обычно настраивается автоматически, но может требовать вмешательства хостера.

Лучшие практики

  1. Используйте только HTTPS
    • Перенаправляйте весь HTTP трафик
    • Включите HSTS
  2. Мониторьте сроки действия
    • Настройте уведомления
    • Проверяйте ежемесячно
  3. Регулярно проверяйте конфигурацию
    • SSL Labs тест раз в квартал
    • Цель: оценка A или A+
  4. Обновляйте TLS
    • Отключите старые версии (TLS 1.0, 1.1)
    • Используйте современные шифры
  5. Защищайте приватные ключи
    • Не храните в публичных репозиториях
    • Ограничьте доступ (chmod 600)
    • Регулярно меняйте при компрометации

См. также

Внешние ссылки

---

Последнее обновление: 30 январь 2026