Errore "Il server deve essere a conoscenza di SSL ma non ha un certificato configurato [Suggerimento: SSLCertificateFile]"


21

Dopo aver recentemente aggiornato Apache2 alla versione 2.2.31 ho riscontrato uno strano comportamento nell'impostazione SSL VirtualHost.

Alcuni dei siti Web che sto ospitando mostravano il certificato per l'host predefinito anche se il client era a Server Name Identificationconoscenza, e questo è accaduto solo con alcuni di essi. Questo si presenta come il comune avviso di passaporto di Firefox / Chrome sul fatto che potresti essere truffato se stai navigando nel tuo home banking, ma semplicemente non è stato così.

Per essere chiari, se il server host.hostingdomain.orgha il proprio SSL, tentando di accedere al https://www.hostedsite.orgcertificato dei rapporti host.hostingdomain.org, ma alcuni hanno https://www.hostedsite.meriportato il certificato corretto.

Tutti i siti sono ospitati sullo stesso indirizzo IP, sulla porta 443. La verità è che VirtualHosting funziona sul lato HTTP e reindirizza automaticamente i client compatibili con SNI su SSL, quindi è retrocompatibile con i client SNI ignari.

L'esame dei log degli errori per i VirtualHosts offensivi ha mostrato il testo seguente

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

e in effetti il ​​vhost è stato correttamente configurato con SSLCertificateFile.

La domanda è ovvia: come risolverlo?

Risposte:


38

Succede che potrebbe essere un bug nella versione più recente di Apache.

Soluzione 1: downgrade all'ultima stalla

Soluzione 2: modifica listen.conf

Sostituisci Listen *:443(o Listen 443secondo la tua configurazione) conListen *:443 http

Credito


1
Grazie per averlo sottolineato! Mi hai risparmiato un sacco di domande in giro ... Mi chiedo perché Apache stia rendendo la vita più difficile !?
tftd

2
Soluzione 2: dovrebbe essere httpd.conf e non hear.conf
zzapper

1
Nota, questo è successo a me stamattina ... alla fine ho dovuto aggiungere "http" all'ascolto lin in /etc/httpd/conf.d/ssl.conf - oh, non ho dovuto effettuare il downgrade ...
Scott,

Le soluzioni sono alternate, non è necessario eseguire il downgrade se si aggiunge l'ascolto.conf
usr-local-ΕΨΗΕΛΩΝ

10

Ho avuto lo stesso identico problema e ciò che ha funzionato per me è stato incredibilmente semplice

modifica /etc/apache2/ports.conf (per ubuntu o httpd.conf)

cambia "Ascolta 443" in "Ascolta 443 http" in ssl_module


Questo è già nella risposta accettata.
Sven

2
La risposta accettata sembra obsoleta. Questa risposta è stata più utile e accurata. +1
Parag

Questa risposta è applicabile per apache sul mio stack di lampade apache2.4, Ubuntu. Altra risposta è "hear.conf" - dovrebbe essere ports.conf
Nick,

2

Un'altra soluzione per questo è garantire che tutti i: 443 vhosts includano la configurazione TLS.

Questo problema è stato recentemente introdotto in Debian wheezy e ho ottenuto la soluzione da http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/ .


Questo era il mio problema Ho duplicato un vhost nel mio httpd.confma non sono riuscito a includere le righe che specificano la configurazione TLS. L'aggiunta delle varie impostazioni TLS in (SSLEngine, SSLCipherSuite, SSLCertificateFile e SSLCertificateKeyFile) ha risolto il problema.
Rinogo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.