Come fermare le richieste HTTPS per host virtuali non abilitati per ssl dal primo virtualhost abilitato per ssl (Apache-SNI)


7

Spero che il titolo sia chiaro.

Come evitare che le richieste HTTPS per host virtuali non abilitati per SSL vengano indirizzate al primo virtualhost abilitato per SSL (l'installazione è Apache-SNI).

Ad esempio, usando la mia configurazione abbreviata di seguito, le richieste per https://example.com(un vhost non SSL) vengono servite da Apache nel vhost abilitato per SSL https://example.org. Vorrei disabilitare quel comportamento e possibilmente rispondere con il codice di risposta HTTP appropriato (incerto su cosa sia).

Potrebbe non essere nemmeno possibile, ma ho pensato di chiedere.

# I actually have a SNI setup, but it's not demonstrated here.
# I don't think it's relevant in this situation.

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    ServerName example.org
</VirtualHost>

<VirtualHost *:443>
    ServerName example.org
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
</VirtualHost>

EDIT: Forse una regola mod_rewrite nel primo ssl-vhost?


Non posso commentare la vera domanda, ma posso dire che non esiste un codice http per la condizione desiderata. La modalità di errore quando un client tenta di connettersi con SSL a un server non SSL è un errore nello stabilire la connessione poiché il server non è in grado di gestire l'handshake ssl inviato dal client. Puoi vederlo provando ` some-site.com:80 'nel tuo browser. (Suppongo che sarebbe possibile avere un tentativo di applicazione per gestirlo, ma non lo so.)
Etan Reisner,

Risposte:


7

Come dicono i documenti Apache , quando nessuna corrispondenza viene fornita ServerNamedal nome host nella richiesta Web, VirtualHostverrà utilizzata la prima corrispondenza della combinazione IP / porta specificata.

Pertanto, devi semplicemente fornire un host virtuale predefinito che non serve alcun contenuto o contenuto di tua scelta e deve essere il primo analizzato da Apache quando carica la sua configurazione.

Se non si desidera che host specifici siano accessibili tramite https, posizionarli su un indirizzo IP separato, su cui è stato configurato Apache non Listensulla porta 443.


Stavo pensando che una regola mod_rewrite nel primo vhost SSL che reindirizzasse al vhost corretto tramite http sarebbe stata buona. Ahimè, sono un novizio di mod_rewrite.
Jeff

Qui non ho visto nulla che suggerisse una riscrittura. Stai cercando di fare qualcosa che non hai menzionato?
Michael Hampton

Considerando il mio obiettivo è disabilitare / contrastare le richieste https ai vhosts non ssl, sì, penso che mod_rewrite potrebbe funzionare. Forse qualcosa del tipo "Se https-example.com, Apache invia la richiesta a https-example.org. In https-example.org, crea una regola mod_rewrite che rimanda il client a HTTP-example.com." Stavo solo pensando a voce alta.
Jeff

Riscrivi non ti aiuterà. E gli utenti riceveranno comunque cattivi avvisi sui certificati. Vedi la mia modifica.
Michael Hampton

Fatto. Sembrava che stavo chiedendo troppo. È ora di raccogliere alcuni nickel per un altro IP. Se hai altri suggerimenti o soluzioni alternative, aggiorna la tua risposta.
Jeff

0

Lo so, è passato un po 'di tempo ... Ma per quanto riguarda l' opzione SSLStrictSNIVHostCheck . Per quanto ho capito, questo risolve il tuo problema.

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.