Jak certyfikat SSL może działać tylko w przypadku niektórych klientów?

11

Mój dostawca hostingu niedawno ponownie wystawił i ponownie zainstalował certyfikat SSL dla mojej domeny, po tym, jak niechcący wygaśnie stary.

Teraz mogę ponownie przeglądać witrynę za pośrednictwem HTTPS, podobnie jak mój host, podobnie jak wielu innych użytkowników.

Jednak niektórzy użytkownicy (co najmniej tuzin z setek) nadal otrzymują Your connection is not securekomunikaty o błędach w różnych przeglądarkach i platformach. (Trudno zdiagnozować problem, którego nie mogę odtworzyć).

Rozumiem, że różne przeglądarki używają różnych list urzędów certyfikacji (CA.)

  1. Dlaczego użytkownik korzystający z tej samej wersji Firefoksa co ja (45.0.1 w systemie OS X) otrzymuje SEC_ERROR_UNKNOWN_ISSUERbłąd (tylko dla mojej witryny), a ja nie? Co to umożliwia? Wspomniany użytkownik wyczyścił pamięć podręczną i ponownie uruchomił laptopa.

Przeprowadziłem kontrolę SSL na digicert.com . Rezultat jest następujący:

Certyfikat SSL nie jest zaufany

Certyfikat nie jest podpisany przez zaufany organ (porównanie z głównym sklepem Mozilli). Jeśli certyfikat został zakupiony od zaufanego urzędu, prawdopodobnie wystarczy zainstalować jeden lub więcej certyfikatów pośrednich. Skontaktuj się z dostawcą certyfikatu, aby uzyskać pomoc dotyczącą tej platformy serwera.

  1. Dlaczego w takim przypadku mogę połączyć się z witryną bez błędu SSL?
Fabien Snauwaert
źródło
1
My hosting provider has recently re-issued and re-installed an SSL certificate for my domain, after they let the old one expire by mistake.- W jaki sposób pozostawiłeś tę odpowiedzialność w ich rękach?
joeqwerty
3
Tylko dlatego, że nie jestem administratorem, wynajmuję od nich zarządzany serwer dedykowany. (W przypadku małej historii, piszę materiały do ​​nauki języków i kod,
oprócz
7
@joeqwerty: Bo to ich praca? Dosłownie płaci im za załatwienie tego dla niego.
Wyścigi lekkości na orbicie
@LightnessRacesinOrbit: To założenie, którego nie podjąłem, stąd pytanie.
joeqwerty 11.04.16
1
bugzilla.mozilla.org/show_bug.cgi?id=399324 to raport o błędzie z prośbą o wsparcie w zakresie automatycznego pobierania certyfikatów pośrednich w Firefoksie. Dyskusja (trwająca już 8 lat) sprowadza się do „IE robi to!” / „Do diabła z IE, RFC mówi, że jest opcjonalne!” / „Słyszałeś kiedyś o zasadzie solidności?” / „Twoja konfiguracja serwera jest zła i powinieneś się czuć źle!”

Odpowiedzi:

22

Łańcuch certyfikatu jest niepełny. Najprawdopodobniej twój dostawca nie zainstalował jakiegoś certyfikatu pośredniego podczas instalacji nowego certyfikatu.

W większości przypadków takie certyfikaty pośrednie są dostarczane przez organ SSL, aby zapewnić obsługę niektórych starszych przeglądarek i systemów operacyjnych. To dlatego, że chociaż działa dla ciebie, nie działa dla niektórych twoich klientów.

Naprawdę doskonałym narzędziem do sprawdzania problemów z SSL w Twojej witrynie jest test serwera SSL przez SSLlabs . Jak widać w powyższym linku, nie tylko masz tutaj problem z łańcuchem, ale także algorytm podpisu użyty do utworzenia twojego certyfikatu jest słaby, twój serwer WWW jest wciąż podatny na atak POODLE i nadal obsługuje RC4, który jest uważane również za niezabezpieczone ...

Nie chcę nic mówić przeciwko twojemu dostawcy serwera WWW, ale na twoim stanowisku wysłałbym im wiadomość e-mail, że naprawią wszystkie te problemy JAK NAJSZYBCIEJ lub zmienią się na innego dostawcę ...

s1lv3r
źródło
Dziękuję, to bardzo pomocne. Z czystej ciekawości, jakiś pomysł, dlaczego klient w systemie OS X i tej samej wersji Firefoksa co mój SEC_ERROR_UNKNOWN_ISSUERwyświetla błąd, a ja nie? Czy to możliwe, że jego wersja systemu operacyjnego jest inna?
Fabien Snauwaert
1
@FabienSnauwaert Tak, jeśli przewiniesz w dół do „Symulacji uzgadniania”, test SSLLabs spróbuje symulować różne kombinacje wersji systemu operacyjnego / przeglądarki. Przeglądarka sama nie obsługuje połączeń SSL, ale częściowo polega na implementacji systemu operacyjnego. Więc zdecydowanie wersja systemu operacyjnego robi różnicę.
s1lv3r 11.04.16
3
Nie chodzi tylko o to, że klienci mogą mieć różne listy urzędów certyfikacji. Możliwe jest również, że niektórzy klienci buforują certyfikaty pośrednie, tak że witryna z brakującym certyfikatem pośrednim może działać, jeśli przeglądarka wcześniej odwiedziła witrynę, która poprawnie skonfigurowała ten certyfikat pośredni.
kasperd 11.04.16
Witryna SSLlabs to miłe narzędzie. Dzięki za referencje.
Parapluie
12

Aby certyfikat mógł być zaufany, musi być podpisany przez podmiot, któremu ufają kombinacje przeglądarki / systemu operacyjnego lub który z kolei został podpisany przez taki podmiot. Zazwyczaj robi to jeden zaufany główny urząd certyfikacji, który podpisuje pośredni urząd certyfikacji, a pośredni urząd certyfikacji podpisuje certyfikat. To tworzy łańcuch, taki jak ten:

  1. Główny urząd certyfikacji, któremu ufa komputer, i podpisuje
  2. Pośredni CA, który podpisuje
  3. Twój certyfikat, któremu można zaufać tylko dzięki łańcuchowi prowadzącemu z powrotem do głównego urzędu certyfikacji.

Problem dotyczy pośredniego certyfikatu CA. Aby mieć pewność, że każdy może zweryfikować łańcuch aż do głównego urzędu certyfikacji, dostawca powinien dołączyć certyfikat pośredni do swojej konfiguracji serwera. W tym przypadku nie.

Powodem, dla którego działa dla niektórych użytkowników, jest to, że mają oni certyfikat pośredni we własnym „magazynie zaufania”. W takich przypadkach zaakceptują twój certyfikat, ponieważ już ufają pośrednikowi. Ale w przypadku, gdy odwiedzający mają inny system operacyjny / przeglądarkę, nie mają certyfikatu pośredniego, więc musieliby uzyskać go z twojego serwera - a twój serwer go nie rozdaje, więc nie mają możliwości weryfikując to.

Jenny D.
źródło
Dziękuję, pomaga mi teraz wyraźnie zobaczyć problem. Czy istnieje jakiś sposób, aby skłonić użytkowników do dodania certyfikatu pośredniego do własnego „magazynu zaufanych certyfikatów” podczas oczekiwania na naprawienie certyfikatu przez mój host? np .: odwiedzanie innej witryny SSL, która na niej polega, czy coś takiego?
Fabien Snauwaert
1
@FabienSnauwaert Niestety nie ma żadnej sztuczki. Samo odwiedzanie witryny z tym samym certyfikatem pośrednim nie pomoże; musieliby pobrać certyfikat i ręcznie dodać go do swojej przeglądarki. Uważam, że ten konkretny certyfikat jest zawarty w nowszych przeglądarkach - działa w Firefox 45.0.1, ale nie w 43.0.4, więc został zawarty gdzieś pomiędzy tymi dwiema wersjami. Więc jeśli możesz zmusić swoich klientów do aktualizacji swoich przeglądarek, to by pomogło.
Jenny D.
4
@JennyD Certyfikaty pośrednie są buforowane przez nowoczesne przeglądarki, więc odwiedzenie innej witryny, która korzysta z tego samego półproduktu, prawdopodobnie będzie działać. Jednakże, to naprawdę nie jeden coś powinno się pytać swoich użytkowników ... (patrz: bugzilla.mozilla.org/show_bug.cgi?id=629558 , sslmate.com/blog/post/chrome_cached_sha1_chains )
Bob
0

Jeśli korzystasz z publicznego klucza HTTP HTTP, a Twój dostawca dał ci nowy certyfikat, klucze publiczne mogły się już zmienić. Te klucze są zapisywane w przeglądarce klienta na określony okres.

jarvis
źródło