Https i certyfikat
Moduł 3: Adres, https i użytkownicy · Czas czytania: 8 minut
Cel lekcji: Po tej lekcji będą Państwo potrafili w pełni przełączyć stronę WordPress na https oraz będą wiedzieć, do czego służą adres WordPress i adres strony.
Kluczowe pojęcia: TLS, certyfikat, Let's Encrypt, automatyczne odnawianie, adres WordPress (siteurl), adres strony (home), WP_HOME i WP_SITEURL, HSTS, zablokowanie dostępu do panelu
Co robi https
Dzięki https wszystko pomiędzy przeglądarką a serwerem jest szyfrowane: hasła, formularze, pliki cookie, a nawet zwykłe strony. Bez https każdy w tej samej sieci (publiczne wifi, przejęty router) może podsłuchiwać, a nawet zmieniać zawartość strony. Przeglądarki oznaczają stronę bez https jako „niezabezpieczoną”, a niektóre funkcje (np. lokalizacja czy kamera) działają wyłącznie przy użyciu https.
Szyfrowanie nosi nazwę TLS. Aby udowodnić, że przeglądarka faktycznie komunikuje się z example.com, a nie z pośrednikiem, serwer posiada certyfikat: cyfrowy dowód podpisany przez wystawcę, któremu przeglądarki ufają. Certyfikat zawiera nazwy, dla których jest ważny, oraz datę ważności.
Bezpłatne certyfikaty i odnawianie
Let's Encrypt wydaje bezpłatne certyfikaty. Niemal każdy dostawca hostingu zamawia je automatycznie i automatycznie je odnawia. Certyfikat Let's Encrypt jest obecnie ważny przez 90 dni, a Let's Encrypt zapowiedziało stopniowe skrócenie tego okresu do 45 dni. Ręczne odnawianie nie wchodzi więc w grę: musi odbywać się automatycznie.
Płatny certyfikat nie szyfruje lepiej. Różnica polega na dodatkowej weryfikacji organizacji (a czasem na gwarancji). Dla większości stron bezpłatny certyfikat w zupełności wystarczy.
Na co zwrócić uwagę:
- Certyfikat musi obejmować każdą nazwę, którą może wpisać odwiedzający:
example.comorazwww.example.com. Również nazwę, która jedynie przekierowuje, ponieważ przeglądarka sprawdza certyfikat jeszcze przed przekierowaniem. - Automatyczne odnawianie działa tylko wtedy, gdy DNS wskazuje na Państwa serwer. Jeśli przenieśli Państwo DNS lub skonfigurowali przed nim serwer proxy (np. Cloudflare), proszę sprawdzić, czy odnawianie nadal działa.
- Rekord CAA w DNS może określać, którzy wystawcy mogą wydawać certyfikaty. Jeśli nie ma w nim Let's Encrypt, zamówienie certyfikatu się nie powiedzie (kurs DNS, lekcja 5.2).
Dwa adresy w WordPressie
W sekcji Ustawienia > Ogólne znajdują się dwa adresy. Wyglądają na zbędnie zdublowane, ale oznaczają coś innego:
| Pole | W bazie danych | Znaczenie |
|---|---|---|
| Adres WordPress (URL) | siteurl | Gdzie znajdują się pliki WordPressa (wp-admin, wp-includes) |
| Adres strony (URL) | home | Adres, którego używają odwiedzający |
Zazwyczaj są one takie same, na przykład oba https://example.com. Różnią się jedynie wtedy, gdy WordPress znajduje się w podkatalogu, a strona ma być widoczna w katalogu głównym.
Na podstawie tych adresów WordPress tworzy wszystkie odnośniki: do stron, arkuszy stylów, obrazów, panelu administracyjnego. Jeśli widnieje tu http://, WordPress buduje strony z odnośnikami http://, nawet jeśli odwiedzający wchodzi przez https. Prowadzi to do treści mieszanych (lekcja 3.2) i przekierowań w tę i z powrotem.
Przełączenie strony na https
Jeśli mają Państwo już istniejącą stronę na http, oto kroki:
- Zamówić certyfikat dla obu nazw i sprawdzić, czy
https://example.comdziała (powinni Państwo zobaczyć stronę WordPress, być może jeszcze bez formatowania). - Wykonać kopię zapasową (lekcja 8.1).
- Ustawić oba adresy w Ustawienia > Ogólne na
https://i zapisać. Nastąpi wylogowanie; proszę zalogować się ponownie przez https. - Zamienić stare odnośniki w treści z
http://example.comnahttps://example.com. Proszę zrobić to za pomocą narzędzia, które rozumie dane zserializowane, takiego jakwp search-replacelub wtyczka do wyszukiwania i zamiany (lekcja 3.2), nigdy za pomocą zwykłego polecenia SQL. - Przekierowanie: niech serwer WWW przekierowuje wszystkie żądania na http za pomocą kodu 301 do https (lekcja 3.2). Wielu dostawców hostingu ma do tego odpowiednią opcję; w innym przypadku wystarczy kilka linii w pliku
.htaccess. - Sprawdzić za pomocą zadania z tej lekcji oraz z lekcji 3.2.
Zablokowany dostęp: gdy adres jest błędny
Jeśli przy wpisywaniu adresów popełnią Państwo literówkę (htps://, błędna domena), WordPress po zapisaniu przekieruje Państwa na ten błędny adres. Nie będą Państwo mogli już dostać się do panelu administracyjnego. Bez paniki, istnieją dwa wyjścia:
Przez wp-config.php. Proszę umieścić nad linią „to wszystko, zaprzestań edycji”:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Te linie mają pierwszeństwo przed wartościami w bazie danych. Pola w Ustawienia > Ogólne staną się wtedy wyszarzone. Proszę się zalogować, ustawić poprawne wartości w bazie danych i ponownie usunąć te linie (albo celowo je pozostawić, wtedy nikt nie będzie mógł przypadkowo zmienić adresów przez panel administracyjny).
Przez phpMyAdmin. Proszę otworzyć tabelę wp_options i poprawić wartości siteurl oraz home.
HSTS: aby przeglądarka zapamiętała
Za pomocą nagłówka HSTS (Strict-Transport-Security) serwer informuje przeglądarkę: „przez pewien czas odwiedzaj tę stronę wyłącznie przez https”. Przeglądarka sama zamienia później każde http:// na https://, bez wysyłania najpierw niezabezpieczonego żądania.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS to dobry dodatkowy krok, ale z zastrzeżeniem: przeglądarka, która już widziała HSTS, odmówi później otwarcia strony bez ważnego certyfikatu, nawet przy wyborze opcji „mimo to kontynuuj”. Z opcją includeSubDomains dotyczy to każdej subdomeny. Jeśli mają Państwo subdomenę bez certyfikatu (na przykład stary system wewnętrzny), stanie się ona po włączeniu HSTS niedostępna. Dlatego warto zacząć od krótkiego czasu max-age (na przykład jeden dzień, 86400), wszystko sprawdzić, a dopiero potem go wydłużyć.
W praktyce: jak to wygląda w panelu
Jako przykład posłużymy się DirectAdmin. W cPanel ta funkcja nazywa się SSL/TLS Status (AutoSSL), a w Plesk SSL/TLS Certificates.
- Proszę otworzyć Certyfikaty SSL przy swojej domenie i wybrać Darmowy i automatyczny certyfikat od Let's Encrypt.
- Zaznaczyć
example.comorazwww.example.comi zamówić certyfikat. - W ustawieniach domeny zaznaczyć opcję zawsze kierowania odwiedzających na https (w DirectAdmin: Wymuś SSL z przekierowaniem https). Proszę używać tylko jednego sposobu przekierowania: dwa różne naraz mogą spowodować pętlę przekierowań („zbyt wiele przekierowań”).
- W WordPressie proszę przejść do Ustawienia > Ogólne i ustawić oba adresy na
https://.
Podsumowanie
- Https szyfruje wszystko pomiędzy przeglądarką a serwerem; certyfikat potwierdza tożsamość serwera.
- Bezpłatne certyfikaty Let's Encrypt są ważne krótko i odnawiane automatycznie; muszą obejmować każdą nazwę, którą wpisuje odwiedzający.
- Adres WordPress (siteurl) oraz adres strony (home) muszą być ustawione na
https://. - Jeśli stracą Państwo dostęp do panelu z powodu błędnego adresu, można go przywrócić za pomocą WP_HOME i WP_SITEURL w pliku wp-config.php lub w phpMyAdmin.
- HSTS to dobry dodatkowy krok; warto zacząć od krótkiego czasu ważności.
Quiz
Zadanie
Zadanie A3.1: Czy Państwa certyfikat jest poprawny? Proszę podać adres swojej strony. Program nawiąże połączenie TLS zarówno z nazwą bez www, jak i z www (jeśli taka istnieje) i sprawdzi: czy certyfikat jest ważny i zaufany, czy obejmuje obie nazwy, czy jest ważny dłużej niż 14 dni oraz czy strona wysyła nagłówek HSTS. Brak HSTS zostanie oznaczony na pomarańczowo z wyjaśnieniem, nie jako błąd.
Więcej informacji
Poniższe artykuły opisują te kroki w panelach WebOké; w innych panelach działają one w podobny sposób.
- Instrukcja DirectAdmin 6.1: Co to jest SSL i jak WebOké to obsługuje?
- Instrukcja DirectAdmin 6.2: Bezpłatny certyfikat Let's Encrypt, wnioskowanie o certyfikat
- Instrukcja DirectAdmin 6.3: Certyfikat dla www, subdomen i wildcard
- Instrukcja DirectAdmin 6.4: Odwiedzających zawsze kierować na https
- Aktywacja, odnawianie i rozwiązywanie problemów z certyfikatem SSL
- Różnica między bezpłatnym a płatnym certyfikatem
- Bezpłatny kurs DNS 5.2: CAA: kto może wydawać certyfikaty?
