Prawdziwą poprawką jest upewnienie się, że Twój serwer prezentuje wszystkie certyfikaty w łańcuchu, a nie tylko certyfikat encji końcowej (serwera).
Wskaż administratorowi serwera RFC 5246 sekcja 7.4.2, która wyraźnie stwierdza, że ten komunikat przekazuje łańcuch certyfikatów serwera do klienta.
Jeśli administrator z jakiegoś powodu odmawia / nie może tego zrobić, alternatywną opcją jest próba curl
rozpoczęcia pracy z nieprawidłowo uściskiem dłoni.
Zgodnie z wiadomością na liście mailingowej Curl:
Czy ktoś może potwierdzić, czy cURL obsługuje (lub nie) certyfikat pośredni?
Tak. Wszystkie certyfikaty ca mają łańcuch certyfikatów prowadzący do katalogu głównego. Pakiet ca używany z curl musi składać się z certyfikatów dla całego łańcucha.
/ daniel.haxx.se
Powinno być możliwe dodanie głównego pakietu CA i wszystkich certyfikatów pośrednich do pakietu i wskazanie curl
go za pomocą --cacert <file>
opcji.
Gdy przeglądarki działają, możesz uzyskać dostęp do odpowiednich certyfikatów CA. Na karcie certyfikatów (różnej dla każdej przeglądarki, ale jestem pewien, że ją znajdziesz), przejrzyj łańcuch certyfikatów. Dwukrotnie kliknij głównego urzędu pierwszy GlobalSign root CA - G1 i na szczegóły karcie, kliknij Kopiuj do pliku ... . Zapisz to jako root.cer
. Zrób to samo z AlphaSSL CA - SHA256 - G2 i zapisz jako issuing.cer
. Połącz oba razem w jednym pliku (np. chain.cer
) I użyj tego jako argumentu -cacert
.
Jak uprzejmie zauważył @AB, brakujący certyfikat można również znaleźć tutaj .
Twoje przeglądarki działają, ponieważ buforują certyfikaty CA. Jeśli w przeszłości przeszedłeś do prawidłowo skonfigurowanej witryny, której certyfikat został wydany przez ten sam urząd certyfikacji, co certyfikat twojego serwera, zostanie ona buforowana przez przeglądarkę. Gdy następnie odwiedzisz niepoprawnie skonfigurowaną witrynę, przeglądarka użyje certyfikatów CA w pamięci podręcznej do zbudowania łańcucha. Wydaje ci się, że wszystko jest w porządku, chociaż za kulisami serwer jest źle skonfigurowany.
Pamiętaj, że w systemach Windows IE / Edge i Chrome współużytkują tę samą pamięć podręczną, podczas gdy Firefox używa własnej pamięci podręcznej.
Oprócz powyższego IE / Edge i Chrome (ponieważ współużytkują ten sam stos kryptograficzny) będą używać rozszerzenia w certyfikatach o nazwie AuthorityInformationAccess . Jest to opcja caIssuer , która zapewnia adres URL, z którego można pobrać certyfikat CA certyfikatu podmiotu końcowego. Dlatego nawet jeśli jedna z tych przeglądarek nie buforowała brakujących certyfikatów z poprzedniego przeglądania, może ją pobrać w razie potrzeby. Pamiętaj, że Firefox tego nie robi, dlatego czasami Firefox może wyświetlać błędy certyfikatów, gdy IE / Edge i Chrome wydają się działać.