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

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка HTTPS-редиректа для сайта
Простая
~2-3 часа
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Настройка принудительного HTTPS-редиректа

HTTPS-редирект гарантирует что все запросы к сайту — включая прямые HTTP-ссылки, закладки, устаревшие ссылки с других сайтов — перенаправляются на HTTPS-версию. HSTS дополнительно защищает от downgrade-атак.

Nginx: редирект HTTP → HTTPS

# Редирект всего HTTP-трафика
server {
    listen 80;
    listen [::]:80;
    server_name example.ru www.example.ru;

    # Let's Encrypt .well-known — оставить доступным по HTTP для обновления сертификата
    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://example.ru$request_uri;
    }
}

# Редирект www → non-www (или наоборот) + HTTPS
server {
    listen 443 ssl;
    server_name www.example.ru;

    ssl_certificate /etc/letsencrypt/live/example.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.ru/privkey.pem;

    return 301 https://example.ru$request_uri;
}

# Основной сервер
server {
    listen 443 ssl http2;
    server_name example.ru;
    # ...
}

HSTS (HTTP Strict Transport Security)

HSTS сообщает браузеру всегда использовать HTTPS для этого домена — даже если пользователь введёт http://. Браузер кешируется это указание на max-age секунд.

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
  • max-age=63072000 — 2 года (рекомендуется после тестирования)
  • includeSubDomains — распространить на все поддомены
  • preload — для добавления в браузерный preload-лист (hstspreload.org)

Порядок внедрения HSTS:

  1. Начать с max-age=300 (5 минут) — убедиться что всё работает
  2. Увеличить до max-age=86400 (1 день)
  3. Добавить includeSubDomains — убедиться что ВСЕ поддомены на HTTPS
  4. Увеличить до max-age=31536000 (1 год)
  5. Добавить preload и зарегистрировать на hstspreload.org

Laravel: HTTPS в приложении

// AppServiceProvider
public function boot(): void
{
    if (app()->environment('production')) {
        URL::forceScheme('https');
        // или
        URL::forceRootUrl('https://example.ru');
    }
}
// bootstrap/app.php — trustProxies для сайтов за reverse proxy/CDN
->withMiddleware(function (Middleware $middleware) {
    $middleware->trustProxies(
        headers: Request::HEADER_X_FORWARDED_FOR |
                 Request::HEADER_X_FORWARDED_HOST |
                 Request::HEADER_X_FORWARDED_PORT |
                 Request::HEADER_X_FORWARDED_PROTO,
        proxies: '*'
    );
})

Без trustProxies — Laravel не видит что запрос пришёл по HTTPS (Nginx → PHP по HTTP), генерирует HTTP URL в redirect-заголовках и ссылках.

Apache

# .htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

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

Cloudflare

В панели Cloudflare: SSL/TLS → Edge Certificates:

  • Always Use HTTPS → включить
  • HTTP Strict Transport Security (HSTS) → включить, max-age 12 месяцев

Проверка

# Проверить редирект
curl -I http://example.ru
# Должно вернуть: Location: https://example.ru/

# Проверить HSTS
curl -I https://example.ru | grep Strict
# Должно вернуть: Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

# Полная проверка цепочки редиректов
curl -IL http://www.example.ru

Срок настройки: 30 минут для Nginx-конфигурации и Laravel trustProxies.