Peringatan Penghentian SSLCertificateChainFile di Apache 2.4.8+

14

Kami memiliki Sertifikat SSL untuk situs web kami dari Network Solutions. Setelah memutakhirkan Apache / OpenSSL ke versi 2.4.9, saya sekarang mendapatkan peringatan berikut saat memulai HTTPD:

AH02559: The SSLCertificateChainFile directive (/etc/httpd/conf.d/ssl.conf:105) is deprecated, SSLCertificateFile should be used instead

Menurut manual Apache untuk mod_ssl ini memang benar:

SSLCertificateChainFile sudah usang

SSLCertificateChainFile menjadi usang dengan versi 2.4.8, ketika SSLCertificateFile diperluas untuk juga memuat sertifikat CA menengah dari file sertifikat server.

Mencari dokumentasi untuk SSLCertificateFile , sepertinya saya hanya perlu mengganti panggilan saya ke SSLCertificateChainFile dengan SSLCertificateFile .

Perubahan ini mengubah ssl.conf saya dari ini:

SSLCertificateFile /etc/ssl/STAR.EXAMPLE.COM.crt
SSLCertificateKeyFile /etc/ssl/server.key
SSLCertificateChainFile /etc/ssl/Apache_Plesk_Install.txt

untuk ini:

SSLCertificateFile /etc/ssl/STAR.EXAMPLE.COM.crt
SSLCertificateFile /etc/ssl/Apache_Plesk_Install.txt
SSLCertificateKeyFile /etc/ssl/server.key

... tapi ini tidak berhasil. Apache menolak untuk memulai tanpa pesan kesalahan.

Saya tidak yakin harus mencoba apa lagi di sini, karena saya tidak terlalu mengenal mod_ssl atau sertifikat SSL secara umum. Saya ingat kami perlu menambahkan file Apache_Plesk_Install.txt untuk Internet Explorer agar tidak memiliki peringatan SSL di situs kami, tetapi selain itu saya tidak memiliki petunjuk.

Bantuan apa pun akan sangat dihargai. Terima kasih.

DOOManiac
sumber
6
Anda harus menggabungkan semua sertifikat, sertifikat klien dan sertifikat perantara
dawud

Jawaban:

9

Saya memiliki masalah yang sama. Saya baru saja mengganti baris-baris ini/etc/apache2/site-enabled/default-ssl.conf

SSLCertificateFile    /etc/ssl/certs/domain.crt
SSLCertificateKeyFile /etc/ssl/private/domain.key
#SSLCertificateChainFile /etc/apache2/ssl.crt/chain.crt

Seperti yang Anda lihat, saya baru saja berkomentar SSLCertificateChainFile. Kemudian, melihat kesalahan yang sama seperti Anda, saya bersambung isi dari saya chain.crt di akhir dari domain.crt, seperti:

root@host~: cat /etc/apache2/ssl.crt/chain.crt >> /etc/ssl/certs/domain.crt

Dan itu bekerja seperti pesona.

pengguna306141
sumber
juga sangat valid sesuai dengan komentar di konfigurasi apache: "Atau # file yang direferensikan dapat sama dengan # SSLCertificateFile ketika sertifikat CA langsung ditambahkan ke server # sertifikat untuk kenyamanan."
PeanutPower
6

Saya menggunakan skrip berikut untuk membuat bundel sertifikat yang berisi sertifikat dirantai.

#!/bin/sh
#
# Convert PEM Certificate to ca-bundle.crt format
#

test ! $1 && printf "Usage: `basename $0` certificate" && exit 1

# Friendly Name and Underline Friendly Name with equal signs
openssl x509 -in $1 -text -noout | sed -e 's/^  *Subject:.*CN=\([^,]*\).*/\1/p;t  c' -e 'd;:c' -e 's/./=/g'
# Output Fingerprint and swap = for :
openssl x509 -in $1 -noout -fingerprint | sed -e 's/=/: /'
# Output PEM Data:
echo 'PEM Data:'
# Output Certificate
openssl x509 -in $1
# Output Certificate text swapping Certificate with Certificate Ingredients
openssl x509 -in $1 -text -noout | sed -e 's/^Certificate:/Certificate Ingredients:/'

Untuk menggunakannya, mulai dengan sertifikat server dan secara berurutan melalui sertifikat perantara dalam rantai sertifikat kembali ke sertifikat root.

./bundle.sh myserver.crt >myserver.chain
./bundle.sh intermediate.crt >>myserver.chain
./bundle.sh root.crt >>myserver.chain

di mana nama sertifikat yang sesuai diganti dengan nama sertifikat asli Anda.

sweetfa
sumber
4

Memiliki sertifikat situs, perantara juga dalam file yang ditentukan oleh arahan SSLCertificateFile dan kunci pribadi digabungkan dalam file yang ditentukan oleh SSLCertificateKeyFile dan Anda harus siap. Meskipun Anda bisa memiliki kunci pribadi dalam file yang sama dengan sertifikat tetapi itu tidak dianjurkan. Silakan periksa dokumentasi untuk lebih jelasnya:
http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslcertificatefile
Saya akan merekomendasikan bahwa sertifikat CA root bukan bagian dari SSLCertificateFile karena klien harus memiliki root sertifikat CA sebagai tepercaya untuk validasi sertifikat agar berfungsi seperti yang dirancang.
Juga, jika tidak ada apa pun di log kesalahan apache maka orang dapat menempatkan log kesalahan ke rincian yang lebih baik seperti dalamhttp://httpd.apache.org/docs/current/mod/core.html#loglevel

Khanna111
sumber
1
Betulkah? Kunci pribadi? Itu sepertinya ide yang buruk. Hanya ingin tahu, karena, asumsi kuat saya adalah ini pribadi.
ssl
2
Anda benar - segala sesuatu telah berubah dari apa yang saya ingat dari dokumentasi dan juga dokumentasi apa yang ada di file httpd-ssl.conf untuk dua arahan ini. Meskipun diizinkan tetapi praktik memiliki kunci pribadi dalam file yang ditentukan oleh SSLCertificateFile tidak disarankan. Balas sekarang diedit untuk memenuhi fakta ini.
Khanna111