Czy ten łańcuch certyfikatów SSL jest uszkodzony i jak go naprawić?

13

W przypadku certyfikatu SSL w domenie example.com niektóre testy wykazały, że łańcuch jest niekompletny, a ponieważ Firefox utrzymuje własny magazyn certyfikatów, może się nie powieść w Mozilli ( 1 , 2 , 3 ). Inni twierdzą, że jest w porządku , podobnie jak Firefox 36, który mówi mi, że łańcuch certyfikatów jest w porządku.

AKTUALIZACJA: Testowałem na Opera, Safari, Chrome i IE na Windows XP i MacOS X Snow Leopard, wszystkie działają dobrze. Nie działa tylko w przeglądarce Firefox <36 w obu systemach operacyjnych. Nie mam dostępu do testów w systemie Linux, ale na tej stronie jest mniej niż 1% odwiedzających, a większość z nich to prawdopodobnie boty. Odpowiada to na pierwotne pytania „czy ta konfiguracja wyświetla ostrzeżenia w Mozilla Firefox, czy nie” i „Czy ten łańcuch certyfikatów SSL jest zepsuty, czy nie?”.

Dlatego pytanie brzmi: w jaki sposób dowiedzieć się, które certyfikaty muszę umieścić w pliku ssl.ca, aby mogły być obsługiwane przez Apache, aby nie dopuścić do zakrztuszenia się przeglądarki Firefox <36?

PS: Na marginesie, Firefox 36, którego testowałem, był zupełnie nową instalacją. Nie ma szans, żeby nie narzekał, ponieważ podczas poprzedniej wizyty na stronie korzystającej z tego samego łańcucha pobrał pośredni certyfikat .

Gaia
źródło
1
Niekoniecznie - w każdym razie, jeśli potrafisz odpowiedzieć na własne pytanie, zachęcałeś do tego :)
BE77Y,
Tak, odpowiedziałem na to, ale bardziej przydatne byłoby ponowne pytanie, jak to naprawić, niż czy jest zepsute. Czy można to zrobić?
Gaia,
1
Absolutnie. Utrzymuje on również odpowiedzi tutaj istotne (od momentu ich opublikowania, miały rację, prawda?)
Kanadyjczyk Łukasz Łukasz,
@ Gaia: ah, ok - rozumiem, co masz na myśli teraz. Nie jestem w 100% lepszy od tego, co można by uznać za najlepszą praktykę w tym zakresie, ale moim instynktem byłoby zaktualizowanie twojego pytania, aby zawierało „i jak to rozwiązać?” W twoim przypadku, zgodnie z odpowiedzią Steffena Ullricha, w łańcuchu brakuje certyfikatu „COMODO RSA Certification Authority” - możesz uniknąć potencjalnych błędów klienta, ale uwzględnić go w swoim łańcuchu. Jest to tylko tak naprawdę uważane za złą praktykę, ponieważ powoduje potencjalnie niepotrzebne koszty ogólne uścisku dłoni - w przeciwnym razie nie ma to szkodliwego wpływu.
BE77Y
W związku z powyższym warto również zauważyć, że większość, jeśli nie wszyscy nowi klienci, powinni mieć absolutnie wszystko w porządku z obecną konfiguracją (zgodnie z testem SSLlabs)
BE77Y

Odpowiedzi:

8

To, czy łańcuch jest wystarczający, zależy od magazynu CA klienta. Wygląda na to, że Firefox i Google Chrome zawarły certyfikat dla „COMODO RSA Certification Authority” na koniec 2014 roku. W przypadku przeglądarki Internet Explorer prawdopodobnie zależy to od systemu operacyjnego. Urząd certyfikacji może nie zostać jeszcze uwzględniony w magazynach zaufania używanych przez przeglądarki niebędące przeglądarkami, tj. Przeszukiwacze, aplikacje mobilne itp.

W każdym razie łańcuch nie jest w pełni poprawny, jak widać z raportu SSLLabs :

  • Jedna ścieżka zaufania wymaga zaufania nowego urzędu certyfikacji przez przeglądarkę. W takim przypadku nadal wysyłasz nowy urząd certyfikacji, który jest nieprawidłowy, ponieważ zaufane urzędy certyfikacji muszą być wbudowane i nie mogą być zawarte w łańcuchu.
  • Druga ścieżka zaufania jest niekompletna, tzn. Wymaga dodatkowego pobrania. Niektóre przeglądarki, takie jak Google Chrome, pobierają to pobieranie, podczas gdy inne przeglądarki i inne przeglądarki oczekują, że wszystkie niezbędne certyfikaty będą zawarte w dostarczonym łańcuchu. Dlatego większość przeglądarek i aplikacji, które nie mają wbudowanego nowego urzędu certyfikacji, zawiedzie w tej witrynie.
Steffen Ullrich
źródło
Mam wrażenie, że zarówno Chrome, jak i IE korzystają z magazynu certyfikatów systemu Windows. Czy na pewno Chrome ma własny sklep z dodatkami?
Gaia,
SSLlabs stwierdza „Problemy z łańcuchem = Brak”, ale szczegółową analizę łańcucha widzę poniżej.
Gaia,
1
FWIW, Chrome w systemie OS X rzeczywiście korzysta z magazynu certyfikatów systemu operacyjnego @SteffenUllrich.
BE77Y,
1
@ Gaia: nie zapomnij o klientach mobilnych, mają oni własny magazyn certyfikatów, który może się różnić w zależności od wersji Androida.
Steffen Ullrich,
1
@ Gaia: weź drugą ścieżkę zaufania pokazaną przez SSLLabs i po prostu dodaj brakujący certyfikat łańcucha. Łańcuch ten można następnie zweryfikować zarówno w przeglądarkach, które mają nowszy urząd certyfikacji, jak i tych, które jeszcze go nie mają.
Steffen Ullrich,
8

Skontaktowałem się z Comodo i pobrałem z nich plik bundle.crt. Zmieniłem nazwę na ssl.ca, zgodnie z konfiguracją tego serwera, a teraz cert przechodzi wszystkie testy. Chain issues = Contains anchorZawiadomienie nie jest problemem (patrz niżej).

SSL Labs, powszechnie uważany za najbardziej kompletny test, teraz pokazuje Chain issues = Contains anchor, podczas gdy wcześniej pokazywał Chain issues = None(podczas gdy inni wykazywali problem z łańcuchem). To naprawdę nie jest problem ( 1 , 2 ), oprócz dodatkowego 1kB, który serwer wysyła do klienta.

Mój wniosek

  1. Zignoruj test SSL Labs, w którym jest napisane Chain issues = Contains anchorLUB usuń certyfikat główny z pliku pakietu (zobacz ten komentarz poniżej).

  2. Zawsze wykonuj test dodatkowy w co najmniej jednym z trzech pozostałych serwisów testowych ( 1 , 2 , 3 ), aby upewnić się, że Twój łańcuch jest naprawdę w porządku, gdy mówi SSL LabsChain issues = None .

Gaia
źródło
2
Naprawdę nie ma sensu dołączanie faktycznego certyfikatu „anchor” / „root”. Jednak bardzo zależy ci na certyfikacie pośrednim. Zakładam, że początkowo nie miałeś certyfikatu pośredniego, co spowodowało problemy.
Håkan Lindqvist
@ HåkanLindqvist Więc powinienem odszyfrować certyfikaty, dowiedzieć się, który z nich jest certyfikatem głównym i usunąć go z łańcucha?
Gaia,
1
Sugerowałbym zrobienie tego, chociaż nie jest to tak poważny problem, jak brak pośrednich certyfikatów (to tylko trochę marnotrawstwo). Fwiw, test SSL Qualy wskazuje, że jest 02faf3e291435468607857694df5e45b68851868to niepotrzebne.
Håkan Lindqvist
@ HåkanLindqvist za pomocą openssl x509 -fingerprint -in ssl.cai przybiłem, że część pliku, która ma odcisk palca, 02faf3e291435468607857694df5e45b68851868była pierwszą PEM. Usunąłem go, a teraz dostaję i.imgur.com/1iG2UCz.png i i.imgur.com/m8gYbdG.png (BŁĄD OCSP: Żądanie nie powiodło się ze statusem OCSP: 6 [ ocsp.comodoca.com] )
Gaia
3
Twój wniosek dotyczący ostrzeżenia „zawiera kotwicę” jest ważny - Ta odpowiedź na Security.SE jest warta przeczytania; Podsumowując, nie ma problemu z wysłaniem go: security.stackexchange.com/a/24566/7043
Chris J