"Server harus sadar SSL tetapi tidak memiliki sertifikat yang dikonfigurasi kesalahan [Petunjuk: SSLCertificateFile]"

21

Setelah baru-baru ini meningkatkan Apache2 ke versi 2.2.31, saya menemukan perilaku aneh dalam pengaturan SSL VirtualHost.

Beberapa situs web yang saya hosting menunjukkan sertifikat untuk host default bahkan jika klien Server Name Identificationmenyadarinya, dan ini hanya terjadi pada beberapa di antaranya. Ini ditampilkan sebagai peringatan paspor Firefox / Chrome umum tentang kemungkinan Anda menjadi scam jika Anda meramban perbankan rumah Anda, tetapi itu bukan masalahnya.

Untuk menjadi jelas, jika server host.hostingdomain.orgmemiliki SSL sendiri, mencoba mengakses https://www.hostedsite.orgsertifikat laporan untuk host.hostingdomain.org, tetapi beberapa https://www.hostedsite.memelaporkan sertifikat yang benar.

Semua situs di-host pada alamat IP yang sama, pada port 443. Yang benar adalah bahwa VirtualHosting bekerja di sisi HTTP dan mengarahkan ulang klien yang sadar-SNI ke SSL secara otomatis, jadi itu kompatibel dengan klien-klien yang tidak menyadari SNI.

Memeriksa log kesalahan untuk VirtualHost yang menyinggung yang ditunjukkan teks berikut

[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)

dan sebenarnya vhost telah dikonfigurasi dengan benar dengan SSLCertificateFile.

Pertanyaannya jelas: bagaimana cara memperbaikinya?

usr-local-ΕΨΗΕΛΩΝ
sumber

Jawaban:

38

Itu bisa jadi bug di versi terbaru dari Apache.

Solusi 1: turun ke stabil terbaru

Solusi 2: edit listen.conf

Ganti Listen *:443(atau Listen 443sesuai dengan pengaturan Anda) denganListen *:443 http

Kredit

usr-local-ΕΨΗΕΛΩΝ
sumber
1
Terima kasih telah menunjukkan ini! Anda menyelamatkan saya banyak bertanya-tanya di sekitar ... Saya bertanya-tanya mengapa apache membuat hidup lebih sulit !?
tftd
2
Solusi 2: seandainya itu httpd.conf tidak mendengarkan.conf
zzapper
1
Catatan, ini terjadi pada saya pagi ini ... akhirnya saya perlu menambahkan bahwa "http" ke lin mendengarkan di /etc/httpd/conf.d/ssl.conf - oh, saya tidak perlu menurunkan versi ...
Scott
Solusi bersifat alternatif, Anda tidak perlu menurunkan versi jika menambahkan listen.conf
usr-local-ΕΨΗΕΛΩΝ
10

Saya memiliki masalah yang persis sama, dan apa yang berhasil bagi saya sangat sederhana

edit /etc/apache2/ports.conf (untuk ubuntu, atau httpd.conf)

ubah "Dengarkan 443" menjadi "Dengarkan 443 http" di bawah ssl_module

Keadilan O.
sumber
Ini sudah ada dalam jawaban yang diterima.
Sven
2
Jawaban yang diterima tampaknya sudah ketinggalan zaman. Jawaban ini lebih bermanfaat dan akurat. +1
Parag
Jawaban ini berlaku untuk apache pada tumpukan lampu apache2.4 saya, ubuntu. Jawaban lain adalah "listen.conf" - seharusnya ports.conf
Nick
2

Solusi lain untuk ini adalah memastikan bahwa semua Anda: 443 vhosts termasuk konfigurasi TLS.

Masalah ini baru-baru ini diperkenalkan di Debian wheezy dan saya mendapatkan solusinya dari http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/ .

Francois Marier
sumber
Ini masalah saya. Saya menduplikasi vhost di saya httpd.conftetapi gagal untuk memasukkan baris yang menentukan konfigurasi TLS. Menambahkan berbagai pengaturan TLS kembali (SSLEngine, SSLCipherSuite, SSLCertificateFile, dan SSLCertificateKeyFile) memperbaiki masalah.
rinogo