Ściśle mówiąc, nigdy nie potrzebujesz łańcucha, aby protokół SSL działał.
Co zawsze trzeba to SSLCertificateFilez SSLCertificateKeyFilezawierający poprawny klucz dla tego certyfikatu.
Problem polega na tym, że jeśli wszystko, co dajesz Apache, to certyfikat, to wszystko, co musisz dać łączącym się klientom, to certyfikat - który nie opowiada całej historii o tym certyfikacie SSL. Mówi: „Jestem podpisany przez kogoś, ale nie powiem ci o nich”.
Zwykle działa to dobrze, ponieważ większość systemów klienckich ma duży magazyn certyfikatów CA (zarówno root, jak i pośrednich), które może sprawdzić pod kątem pasujących relacji podpisywania w celu ustanowienia zaufania. Czasami jednak to nie działa; najczęściej napotykasz problem z klientem, który nie posiada certyfikatu dla pośredniego urzędu certyfikacji, który podpisał twój certyfikat.
Tam właśnie wchodzi łańcuch; pozwala Apache pokazać klientowi dokładnie, jak wygląda relacja zaufania, co może pomóc klientowi wypełnić puste pola między twoim certyfikatem, zaufanym rootem i półproduktem, o którym nie wiedzą. Łańcuch można włączyć do konfiguracji na jeden z dwóch sposobów:
- Osadzony w tym samym pliku, który ustawiłeś dla swojego
SSLCertificateFile, w nowych wierszach po certyfikacie serwera w kolejności (katalog główny powinien znajdować się na dole). Jeśli skonfigurujesz go w ten sposób, SSLCertificateChainFilewskaż dokładnie ten sam plik, co SSLCertificateFile.
- W osobnym pliku skonfigurowanym w
SSLCertificateChainFiledyrektywie; certyfikat CA, który wystawił certyfikat serwera, powinien znajdować się w pliku jako pierwszy, a następnie w katalogu głównym.
Sprawdź plik certyfikatu, który masz teraz - założę się, że nie zawiera on danych łańcucha. Co zwykle działa dobrze, ale ostatecznie spowoduje problem z niektórymi przeglądarkami.
/etc/ssl,/usr/local/etc/ssllub wsslpodkatalogu specyficzne dla strony internetowej (np/home/www/example.com/datazostał następnie stronahome/www/example.com/sslposiada certyfikatów).