Solusi 1:
Pastikan tidak ada sertifikat yang hilang di rantai, di SSLCertificateChainFile
file harus ada semua sertifikat dalam urutan dari CA terlebih dahulu dan kemudian turun ke sertifikat perantara apa pun yang digunakan untuk menandatangani CRT Anda, jika tidak, Anda akan mendapatkan kesalahan.
Jika Anda tidak memiliki sertifikat perantara (melihat halaman Digicert sepertinya tidak ada http://www.digicert.com/ssl-certificate-installation-apache-ensim.htm) Anda harus menggunakan SSLCACertificateFile
sebagai gantinya
Solusi 2:
Pembaruan untuk utas lama...
Saya baru saja mengalami hal ini ketika saya membuat file berantai CA dengan memasukkan perantara &root .crt
file bersama menjadi .ca-bundle
baru mengajukan; masalahnya adalah file sertifikat pertama tidak diakhiri dengan baris baru, jadi baris "END" dan baris berikutnya BEGIN
garis digabungkan menjadi satu, seperti
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
Saya baru saja mengedit file dan memasukkan baris baru, memberikan:
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Dan kemudian berhasil.
Solusi 3:
Perbaikan di atas mungkin berguna, tetapi bagi saya perbaikannya adalah ini:
http://blog.oneiroi.co.uk/openssl/x.509/pcks7/openssl-unable-to-load-certificate-wrong-asn1-encoding-routines-asn1-check-tlen-tag-tasn-dec- dot-c-1319/
Jika tautannya masuk:
Format dalam hal ini adalah p7b (PCKS #7); untuk menggunakan sertifikat dengan apache Anda harus mengonversi ini.
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
Di dalam file .cer yang dihasilkan, Anda akan mengajukan sertifikat x.509 yang dibundel dengan sertifikat CA yang relevan, bagi menjadi file .crt dan ca.crt yang relevan dan muat seperti biasa ke dalam apache.
Solusi 4:
Sebenarnya ini adalah komentar untuk @lynxman tapi terlalu panjang.
Saya baru saja mengalami masalah ini menggunakan sertifikat Let's Encrypt dengan Arch Linux. Saat booting setelah restart pertama dalam beberapa bulan httpd
layanan gagal dengan kesalahan ini:
AH01903: Failed to configure CA certificate chain!
Pertama saya mencoba memperbaharui sertifikat karena mudah dan gratis. SSLCertificateChainFile
saya lalu minta satu sertifikat terdaftar, bukan dua (?). Jadi saya mengomentari kalimat itu:
#SSLCertificateChainFile "/etc/letsencrypt/live/mywebsite.com/chain.pem"
Voila! Ini dimulai dengan baik. ¯_(ツ)_/¯