Error "El servidor debe ser compatible con SSL pero no tiene certificado configurado [Sugerencia: SSLCertificateFile]" error

21

Después de actualizar recientemente Apache2 a la versión 2.2.31, encontré un comportamiento extraño en la configuración de SSL VirtualHost.

Algunos de los sitios web que estoy hospedando mostraban el certificado para el host predeterminado, incluso si el cliente lo Server Name Identificationsabía, y esto sucedió solo con algunos de ellos. Esto se muestra como la advertencia de pasaporte común de Firefox / Chrome acerca de que posiblemente sea estafado si está navegando por la banca de su casa, pero ese simplemente no fue el caso.

Para ser claros, si el servidor host.hostingdomain.orgtiene su propio SSL, intenta acceder a los https://www.hostedsite.orgcertificados de informes host.hostingdomain.org, pero algunos https://www.hostedsite.meinformaron el certificado correcto.

Todos los sitios están alojados en la misma dirección IP, en el puerto 443. La verdad es que VirtualHosting funciona en el lado HTTP y redirige a los clientes conscientes de SNI a SSL automáticamente, por lo que es compatible con los clientes que no conocen SNI.

Al examinar los registros de errores de los VirtualHosts infractores, se muestra el siguiente texto

[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)

y de hecho, el vhost se configuró correctamente con SSLCertificateFile.

La pregunta es obvia: ¿cómo solucionarlo?

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

Respuestas:

38

Sucede que podría ser un error en la versión más reciente de Apache.

Solución 1: rebaja a la última versión estable

Solución 2: editar listen.conf

Reemplace Listen *:443(o de Listen 443acuerdo con su configuración) conListen *:443 http

Crédito

usr-local-ΕΨΗΕΛΩΝ
fuente
1
¡Gracias por señalar esto! Me ahorraste muchas preguntas ... ¿Me pregunto por qué apache hace la vida más difícil?
tftd
2
Solución 2: si eso es httpd.conf no listen.conf
zzapper
1
Tenga en cuenta que esto me sucedió esta mañana ... terminé necesitaba agregar ese "http" a la línea de escucha en /etc/httpd/conf.d/ssl.conf - oh, no tuve que rebajar ...
Scott el
Las soluciones son alternativas, no necesita rebajar si agrega listen.conf
usr-local-ΕΨΗΕΛΩΝ
10

Tuve exactamente el mismo problema, y ​​lo que funcionó para mí fue increíblemente simple

edite /etc/apache2/ports.conf (para ubuntu o httpd.conf)

cambie "Listen 443" a "Listen 443 http" en ssl_module

Justice O.
fuente
Esto ya está en la respuesta aceptada.
Sven
2
La respuesta aceptada parece anticuada. Esta respuesta fue más útil y precisa. +1
Parag
Esta respuesta es aplicable para apache en mi pila de lámparas apache2.4, ubuntu. Otra respuesta es "listen.conf" - debería ser ports.conf
Nick
2

Otra solución para esto es asegurarse de que todos sus: 443 vhosts incluyen la configuración TLS.

Este problema se introdujo recientemente en Debian Wheezy y obtuve la solución de http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/ .

Francois Marier
fuente
Este fue mi problema. Dupliqué un vhost en mi httpd.confpero no pude incluir las líneas que especifican la configuración de TLS. Al volver a agregar las diversas configuraciones de TLS (SSLEngine, SSLCipherSuite, SSLCertificateFile y SSLCertificateKeyFile) se solucionó el problema.
rinogo