Przeglądarka nie zaakceptuje certyfikatu strony

Co to jest

Serwer odpowiada na porcie 443, ale certyfikat, który nam przekazał, przeglądarka by odrzuciła. Sprawdziliśmy go tak jak przeglądarka, tylko z zewnątrz. Niczego więcej na Twojej stronie nie testowaliśmy.

Z tego, co zobaczyliśmy, to jeden z takich przypadków:

Dlaczego to problem

Odwiedzający zwykle widzi ostrzeżenie na całą stronę i większość osób zamyka kartę, tak jak przy wygasłym certyfikacie. Brak certyfikatu pośredniego to łagodniejszy przypadek: wiele przeglądarek pobiera go samodzielnie, ale inni klienci zawodzą (patrz niżej).

Jak to naprawić

Najpierw sprawdź, co wysyła serwer

openssl s_client -connect example.cz:443 -servername example.cz </dev/null 2>/dev/null |
  openssl x509 -noout -subject -issuer -dates -ext subjectAltName

Wynik pokazuje wystawcę (issuer), okres ważności i nazwy w subjectAltName. Po nim poznasz, który przypadek masz.

Self-signed, nieznany urząd, zła nazwa, słaby klucz

Wszystko rozwiązuje nowy certyfikat publicznego urzędu, który obejmuje domenę i wariant z www. Let’s Encrypt jest darmowy i wystawia nowoczesne klucze:

sudo certbot --nginx -d example.cz -d www.example.cz

Brakuje certyfikatu pośredniego

Serwer musi wysyłać cały łańcuch, nie tylko własny certyfikat. Wiele przeglądarek na komputerach ukrywa ten brak, pobierając brakujący certyfikat samodzielnie (przez AIA), więc u Ciebie strona może działać. Niektórzy klienci, na przykład klienci API, skrypty, bramki płatności i starszy Android, tego nie robią i odrzucają połączenie. W nginx użyj pliku fullchain.pem, a nie cert.pem:

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

W Apache wstaw fullchain.pem do SSLCertificateFile.

Jeszcze nieważny

Najczęściej zegar na maszynie, która wystawiała certyfikat, był zły. Sprawdź date i synchronizację czasu (NTP), potem wystaw certyfikat ponownie.

Hosting współdzielony

W panelu szukaj sekcji SSL lub HTTPS i dodaj certyfikat dla swojej domeny. Jeśli domyślny certyfikat hostingu zostaje, napisz do wsparcia.

Źródła