Skip to content
EN

Как мигрировать с HTTP на HTTPS

Коротко:

Миграция с HTTP на HTTPS: (1) получите SSL-сертификат через certbot (бесплатно); (2) настройте nginx/Apache для HTTPS + TLS 1.2/1.3; (3) добавьте 301-редирект со всех http:// на https://; (4) фиксните Mixed Content (замените http-ссылки на https); (5) включите HSTS + submit hstspreload.org.

Проверить SSL своего сайта →

Пошаговая инструкция

  1. Получите SSL-сертификат. sudo certbot --nginx -d example.com -d www.example.com. Бесплатно от Let's Encrypt.
  2. Настройте HTTPS в веб-сервере. nginx: server block 443 с ssl_certificate + ssl_protocols TLSv1.2 TLSv1.3;
  3. 301 редирект с HTTP на HTTPS. Отдельный server block 80: return 301 https://$host$request_uri;
  4. Исправьте Mixed Content. Замените все http:// ссылки на https:// или // (protocol-relative). Проверьте через /mixed-content.
  5. Обновите canonical и sitemap. В sitemap.xml и <link rel="canonical"> — только https-версии URL.
  6. Включите HSTS. add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
  7. Submit на hstspreload.org. Для попадания в Chrome preload list. Защита от downgrade при первом визите.
  8. Google Search Console. Добавьте HTTPS-версию как отдельный property. Подтвердите 301-редиректы с HTTP-версии.

Открыть инструмент →

TL;DR: Как перевести сайт с HTTP на HTTPS

Для перевода сайта с HTTP на HTTPS, необходимо получить SSL-сертификат, настроить веб-сервер на использование HTTPS и обновить все ссылки на сайте. Основные шаги включают установку сертификата, изменение конфигурации сервера (например, для Apache или Nginx) и редирект с HTTP на HTTPS с помощью 301 редиректов. Это обеспечит безопасность данных и повысит рейтинг сайта в поисковых системах.

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

Первый шаг в переходе на HTTPS — получение SSL-сертификата. Существует несколько типов сертификатов, включая бесплатные (например, от Let's Encrypt) и платные. Чтобы получить сертификат от Let's Encrypt, выполните следующие команды:

sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
sudo certbot --nginx

Следуйте инструкциям на экране, чтобы завершить процесс. После успешной установки сертификата, вы получите подтверждение, что ваш сайт теперь поддерживает HTTPS.

Если вы используете платный сертификат, то процесс будет немного отличаться. Вам нужно будет сгенерировать CSR (Certificate Signing Request) с помощью команды:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

После этого отправьте CSR на выбор вашего провайдера сертификатов. По получении сертификата, вы сможете установить его на свой сервер.

Настройка веб-сервера для HTTPS

После получения SSL-сертификата, необходимо настроить веб-сервер для работы с HTTPS. Пример настройки для Nginx:

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

server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;

ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

location / {
try_files $uri $uri/ =404;
}
}

Этот конфигурационный файл перенаправляет все HTTP-запросы на HTTPS и устанавливает необходимые параметры для работы с SSL. После внесения изменений, не забудьте перезагрузить сервер командой:

sudo systemctl reload nginx

Для Apache настройки будут аналогичны, но с использованием других директив. Убедитесь, что у вас есть необходимые модули, такие как mod_ssl, и используйте следующий пример конфигурации:

<VirtualHost *:80>
ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>

<VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
</VirtualHost>

После настройки сервера, проверьте корректность работы HTTPS, зайдя на сайт через браузер.

СертификатСрок, издатель, домены (SAN)
ЦепочкаПроверка промежуточных и корневых CA
TLS-протоколВерсия TLS и набор шифров
УязвимостиHeartbleed, POODLE, слабые шифры

Почему нам доверяют

TLS 1.3
поддержка
Полная
цепочка CA
<2с
результат
30/14/7
дней до истечения

Как это работает

1

Введите домен

2

Проверка цепочки TLS

3

Дата истечения и уязвимости

Что проверяет SSL-тест?

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

Детали сертификата

Издатель, срок действия, алгоритм подписи, покрываемые домены (SAN) и тип валидации (DV/OV/EV).

Цепочка доверия

Проверка полной цепочки: от конечного сертификата через промежуточные до корневого CA.

Анализ TLS

Версия протокола (TLS 1.2/1.3), набор шифров, поддержка Perfect Forward Secrecy (PFS).

Оповещения об истечении

Создайте монитор — получайте уведомления в Telegram и email за 30/14/7 дней до истечения.

DV vs OV vs EV сертификаты

DV (Domain Validation)
  • Подтверждение только владения доменом
  • Выдаётся за минуты автоматически
  • Бесплатно через Let's Encrypt
  • Подходит для большинства сайтов
  • Самый распространённый тип
OV / EV
  • Проверка организации (OV) или расширенная проверка (EV)
  • Выдаётся за 1-5 рабочих дней
  • Стоимость от $50 до $500/год
  • Для финансов, e-commerce, госсайтов
  • Повышает доверие пользователей

Кому это нужно

DevOps

мониторинг SSL-сертификатов

Безопасность

аудит TLS-конфигурации

SEO

HTTPS как фактор ранжирования

E-commerce

доверие покупателей

Частые ошибки

Истёкший сертификатБраузеры блокируют сайт с истёкшим SSL. Настройте автопродление или мониторинг.
Неполная цепочка сертификатовБез промежуточного CA некоторые браузеры и боты не смогут верифицировать сертификат.
Mixed content на HTTPS-сайтеHTTP-ресурсы на HTTPS-странице — замок в браузере пропадает, снижается доверие.
Использование TLS 1.0/1.1Устаревшие версии TLS содержат известные уязвимости. Используйте TLS 1.2+ или 1.3.
Несовпадение домена в сертификатеСертификат должен покрывать все домены сайта, включая www и поддомены.

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

Настройте автопродлениеLet's Encrypt + certbot с cron — сертификат обновляется автоматически каждые 60-90 дней.
Включите HSTSЗаголовок Strict-Transport-Security заставляет браузер всегда использовать HTTPS.
Используйте TLS 1.3TLS 1.3 быстрее (1-RTT handshake) и безопаснее — убраны устаревшие шифры.
Мониторьте срок действияСоздайте монитор на Enterno.io — получайте уведомления задолго до истечения.
Проверяйте цепочку после обновленияПосле обновления сертификата убедитесь, что промежуточные сертификаты установлены.

Получите больше с бесплатным аккаунтом

Мониторинг SSL-сертификатов, история проверок и уведомления за 30 дней до истечения.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Нужна ли регистрация?

Нет для быстрой проверки. Для continuous-мониторинга — бесплатный аккаунт.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.