Řešení 1:
Ujistěte se, že v řetězci v SSLCertificateChainFile
nechybí žádné certifikáty V souboru by měly být nejprve všechny certifikáty v pořadí od CA a poté až po jakýkoli zprostředkující certifikát, který byl použit k podepsání vašeho CRT, jinak se zobrazí chyba.
Pokud nemáte žádné přechodné certifikáty (při pohledu na stránku Digicert to vypadá, že žádný neexistuje http://www.digicert.com/ssl-certificate-installation-apache-ensim.htm), měli byste použít SSLCACertificateFile
místo
Řešení 2:
Aktualizace starého vlákna...
Právě se mi to stalo, když jsem vytvořil řetězový soubor CA přiřazením mezilehlého a kořenového .crt
soubory dohromady do nového .ca-bundle
soubor; problém byl v tom, že první z cert souborů nekončil novým řádkem, takže jeho řádek "END" a další BEGIN
čáry byly spojeny dohromady, jako
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
Právě jsem upravil soubor a vložil nový řádek s výsledkem:
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
A pak to fungovalo.
Řešení 3:
Výše uvedená oprava může být užitečná, ale pro mě byla tato oprava:
http://blog.oneiroi.co.uk/openssl/x.509/pcks7/openssl-unable-to-load-certificate-wrong-asn1-encoding-routines-asn1-check-tlen-tag-tasn-dec- tečka-c-1319/
V případě, že odkaz jde:
Formát je v tomto případě p7b (PCKS #7); pro použití certifikátu s apache budete muset toto převést.
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
Do výsledného souboru .cer založíte svůj certifikát x.509 spojený s příslušnými certifikáty CA, rozdělíte je do příslušných souborů .crt a ca.crt a načtete jako normálně do apache.
Řešení 4:
Toto byl původně komentář pro @lynxman, ale byl příliš dlouhý.
Právě jsem měl tento problém s použitím certifikátu Let's Encrypt s Arch Linuxem. Po nabootování po prvním restartu za pár měsíců httpd
služba selhala s touto chybou:
AH01903: Failed to configure CA certificate chain!
Nejprve jsem zkusil obnovit certifikát, protože je to snadné a bezplatné. Moje SSLCertificateChainFile
pak měl jeden cert uveden místo dvou (?). Tak jsem ten řádek okomentoval:
#SSLCertificateChainFile "/etc/letsencrypt/live/mywebsite.com/chain.pem"
Voila! Začalo to dobře. ¯_(ツ)_/¯