Come disabilitare l'accesso https a host virtuali specifici?


10

Bene, quindi ho un server Apache impostato con le seguenti direttive:

NameVirtualHost *:80

<VirtualHost *:80>  
ServerName example1.com  
ServerAlias www.example1.com  
DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
ServerName example2.com
ServerAlias *.example2.com
DocumentRoot /var/www/example2
</VirtualHost>

<VirtualHost example1.com:443>
DocumentRoot /var/www/html
ServerName example1.com:443
SSLEngine on
...
</VirtualHosts>

Quindi example1.com ha il supporto SSL ed è possibile accedervi tramite http: // example1.com o https: // example1.com. Tuttavia, questo ha l'effetto collaterale indesiderato di mostrare https: // example1.com quando visito https: // example2.com nel mio browser. Quello che voglio fare è fondamentalmente disabilitare https: // example2.com in qualche modo o reindirizzarlo a http: // example2.com, quindi non ricevo un avviso e il sito sbagliato quando lo visito.

Risposte:


7

Non sarai in grado di evitare di ricevere un avviso, a meno che esempio1 ed esempio2 si trovino su indirizzi IP diversi o ottieni un certificato SSL che copre entrambi i nomi: una pagina di errore o il reindirizzamento non possono avvenire fino a quando non viene stabilita la connessione SSL.

Detto questo, qualcosa del genere dovrebbe funzionare:

NameVirtualHost *:443
<VirtualHost *:443>
  ServerName example1.com
  SSLEngine on
  #...
</VirtualHost>
<VirtualHost *:443>
  ServerName example2.com
  SSLEngine on
  # same certificate config here as on example1, unless you're wanting to use TLS SNI
  # then, let's redirect the user to non-SSL
  Redirect permanent / http://example2.com/
</VirtualHost>

Grazie! Penso che mi mancasse la direttiva NameVirtualHost e Apache pensava che stessi cercando di mettere in conflitto due host virtuali. È interessante notare che Chrome non sta lanciando un avviso su questo reindirizzamento ... Ma non sono preoccupato per questo, ma non voglio che il mio sito SSL venga visualizzato sotto altri nomi di dominio.
nearengine,

Non è lo stesso che aggiungere certificati non validi al fallback a non ssl? Immagino che tu possa aggiungere direttamente _fake al nome della certs sulla tua direttiva vhost.
m3nda

0

non credo che dovresti mettere: 443 su ServerName esempio1.com:443

questi dovrebbero essere configurati correttamente

<VirtualHost example1.com:443> //change example1.com to ip address is a good habit
DocumentRoot /var/www/html
ServerName example1.com
SSLEngine on
...
</VirtualHosts>

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.