DOMENY, DNS I SSL • 4 MIN READ

Wymuszanie HTTPS — przekierowanie 80→443

Jak wymusić HTTPS dla strony — żeby wszystkie wejścia na http:// były automatycznie przekierowane na https://. Checkbox w DA + ręczna konfiguracja .htaccess + HSTS.

Zespół IQHost 14 maj 2026 4m read
#IQHost #domeny #hosting

Sam fakt, że masz cert SSL, nie wystarcza — jeśli ktoś wpisze http://mojafirma.pl (bez s), serwer może odpowiedzieć starą stroną HTTP, bez szyfrowania. Trzeba wymusić redirect 301 z HTTP na HTTPS. W DirectAdmin to jeden checkbox. Alternatywnie — bardziej zaawansowane: HSTS, ręczna konfiguracja .htaccess.

Co zyskasz

  • Wymusisz HTTPS dla swojej domeny — wejście na HTTP zawsze przekieruje na HTTPS.
  • Włączysz HSTS (HTTP Strict Transport Security) — przeglądarki nawet nie spróbują HTTP.
  • Skonfigurujesz ręcznie przez .htaccess z bardziej granularną kontrolą.

Wymagania wstępne

  • Działający certyfikat SSL dla domeny. Patrz Let's Encrypt.
  • Strona dostępna pod HTTPS (przed włączeniem redirectu sprawdź https://mojafirma.pl — musi działać).

Wskazówka

Najpierw potwierdź że HTTPS działa, dopiero potem włączaj redirect. Inaczej możesz zablokować dostęp do strony, jeśli SSL z jakichś względów nie wystawiło się poprawnie.

Krok 1: Otwórz Certyfikaty SSL

Zarządzanie kontami → Certyfikaty SSL.

Strona SSL z checkboxem Wymuś SSL z przekierowaniem https — drugi blok pod radio buttons

Pod sekcją radio buttons (5 trybów wystawienia certu) znajdziesz checkbox „Wymuś SSL z przekierowaniem https" wraz z osobnym przyciskiem Zapisz obok. Pełna strona Certyfikaty SSL — sekcja Wymuszanie HTTPS

Krok 2: Zaznacz checkbox i zapisz

Kliknij checkbox → przycisk Zapisz obok niego.

DA w tle dopisuje regułę do konfiguracji Apache/LiteSpeed:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

(Albo równoważną konfigurację LiteSpeed.) Każde żądanie HTTP zostaje przekierowane na HTTPS z kodem 301 (Permanently Moved).

Krok 3: Test

Otwórz http://mojafirma.pl (bez s!) w incognito. Powinieneś zostać automatycznie przekierowany na https://mojafirma.pl.

W DevTools (F12) → zakładka Network → odśwież stronę → pierwsza pozycja powinna być 301 z http:// na https://.

::: callout ok Gotowe. Wszystkie linki przychodzące na HTTP będą teraz prowadziły na HTTPS.

HSTS — krok dalej

HSTS (HTTP Strict Transport Security) to nagłówek HTTP mówiący przeglądarce: „dla tej domeny zawsze używaj HTTPS, nawet jeśli user wpisze HTTP". Przeglądarka cachuje to ustawienie lokalnie i nigdy więcej nie spróbuje HTTP — oszczędza redirect i chroni przed atakami MITM.

Włączenie HSTS przez .htaccess

W katalogu public_html swojej domeny (Menedżer Plików DA), dodaj/edytuj .htaccess:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
</IfModule>

Wyjaśnienie:

  • max-age=63072000 — pamiętaj przez 2 lata (sekundy)
  • includeSubDomains — stosuj też dla subdomen (*.mojafirma.pl)
  • preload — pozwala dodać domenę do listy preload przeglądarek

Wskazówka

HSTS to commitment na lata. Po włączeniu z max-age=63072000, przez 2 lata przeglądarka będzie odrzucać HTTP dla Twojej domeny. Jeśli kiedyś chciałbyś wyłączyć HTTPS — nie da się, dopóki cache nie wygaśnie. Najpierw przetestuj z krótkim max-age=300 (5 min), upewnij się że wszystko działa, potem przedłuż.

HSTS Preload (najwyższy poziom ochrony)

Domeny w HSTS Preload list są wbudowane w przeglądarki — Chrome, Firefox, Safari już od pierwszej wizyty stosują HSTS. Aby dodać:

  1. Włącz HSTS z max-age=63072000; includeSubDomains; preload
  2. Sprawdź na hstspreload.org czy domena spełnia wymagania
  3. Złóż wniosek przez ten sam serwis
  4. Po weryfikacji (kilka dni-tygodni) domena trafia do listy
  5. Przy najbliższym update Chrome/Firefox — Twoja domena na liście

Ręczna konfiguracja przez .htaccess

Alternatywa do checkboxa DA — większa kontrola. W public_html/.htaccess:

Podstawowy redirect HTTP→HTTPS

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Z wyłączeniem niektórych ścieżek (np. for ACME challenge)

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Wymuszenie HTTPS + non-www (kanoniczny URL)

RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://mojafirma.pl%{REQUEST_URI} [R=301,L]

Wymuszenie HTTPS + www

RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.mojafirma.pl%{REQUEST_URI} [R=301,L]

Test poprawności

ssllabs.com/ssltest — wpisz domenę, sprawdź sekcje:

  • Protocol Support — TLS 1.2/1.3 włączone, SSLv3/TLS 1.0 wyłączone
  • HTTPHTTP/2 wspierane
  • Strict Transport Security (HSTS)max-age=...; includeSubDomains
  • HSTS Preloading — Eligible (jeśli chcesz dołączyć)
  • Mixed Content — czy strona nie ładuje zasobów po HTTP

Ocena A+ to wzorzec. A wystarcza, B/C wymaga poprawek.

Najczęstsze problemy

1. „Po włączeniu wymuszenia strona się nie ładuje"

Przyczyna: SSL nie działa poprawnie. Wyłącz redirect, sprawdź https://mojafirma.pl bezpośrednio. Jeśli pokazuje błąd cert — patrz Problemy SSL.

2. „Redirect pętla (too many redirects)"

Często gdy proxy/CDN (Cloudflare) ma Flexible SSL — Cloudflare wysyła HTTP do Twojego serwera, Twój serwer redirectem mówi „idź na HTTPS", Cloudflare ponownie wysyła HTTP. Pętla.

Rozwiązanie: w Cloudflare → SSL/TLS → Full lub Full (strict).

3. „Mixed content warning — strona pokazuje kłódkę z wykrzyknikiem"

Coś w stronie ładuje się po HTTP — typowo: obrazek, skrypt JS, CSS z hardcodowanym http://. Przeglądarka oznacza jako niezabezpieczone.

Rozwiązanie: w kodzie strony zmień wszystkie http:// na https://. W WordPress: plugin Better Search Replace wymieni w bazie.

4. „Włączyłem HSTS, ale przeglądarka nie pamięta"

  • Sprawdź czy nagłówek faktycznie jest wysyłany: F12 → Network → odśwież → response headers.
  • Niektóre przeglądarki ignorują HSTS na lokalnych adresach (localhost, 127.0.0.1).
  • HSTS wymaga valid SSL — jeśli cert ma błąd, HSTS nie zadziała.

5. „Jak wycofać HSTS?"

  • Wyślij nagłówek Strict-Transport-Security: max-age=0 przez minimum tak długo, jak był pierwotny max-age
  • Czekaj aż przeglądarki klientów odświeżą cache
  • Praktycznie: jak ktoś już dostał max-age=63072000 — przez 2 lata nie wycofasz dla niego HTTPS

6. „Mam wiele domen — muszę wymuszać dla każdej?"

W DA — checkbox per domena. Włącz dla każdej osobno (Certyfikaty SSL → wybierz domenę → checkbox).

W .htaccess — reguła w public_html domeny działa dla niej. Subdomeny dziedziczą jeśli mają osobny .htaccess z tą samą regułą.

Słowniczek

  • 301 Moved Permanently — kod HTTP oznaczający trwałe przekierowanie. SEO-friendly.
  • HSTS (HTTP Strict Transport Security) — nagłówek HTTP wymuszający HTTPS w przeglądarce.
  • HSTS Preload — lista domen z HSTS wbudowana w przeglądarkach (Chrome, Firefox, Safari).
  • Mixed Content — strona HTTPS ładująca zasoby z HTTP. Przeglądarka ostrzega.
  • MITM (Man-in-the-Middle) — atak, w którym ktoś przechwytuje połączenie. HTTPS + HSTS chroni.

Related

Feedback

Czy ten artykuł pomógł?

Potwierdź