Налаштування 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.ua www.example.ua;

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

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

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

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

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

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

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

HTTPS в Laravel застосунку

// AppServiceProvider
public function boot(): void
{
    if (app()->environment('production')) {
        URL::forceScheme('https');
        // або
        URL::forceRootUrl('https://example.ua');
    }
}
// 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.ua
# Має повернути: Location: https://example.ua/

# Перевірити HSTS
curl -I https://example.ua | grep Strict
# Має повернути: Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

# Повна перевірка ланцюга редиректів
curl -IL http://www.example.ua

Строки налаштування: 30 хвилин для Nginx-конфігурації та Laravel trustProxies.