Dichiarazione di più porte per gli stessi VirtualHosts


35

Dichiarare più porte per gli stessi VirtualHosts:

SSLStrictSNIVHostCheck off
# Apache setup which will listen for and accept SSL connections on port 443.
Listen 443
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

<VirtualHost *:443>
  ServerName domain.localhost
  DocumentRoot "/Users/<my_user_name>/Sites/domain/public"
  <Directory "/Users/<my_user_name>/Sites/domain/public">
    Order allow,deny
    Allow from all
  </Directory>

  # SSL Configuration
  SSLEngine on
  ...
</VirtualHost>

Come posso dichiarare una nuova porta ('Listen', ServerName, ...) per 'domain.localhost'?

Se aggiungo il seguente codice, apache funziona (troppo) anche per tutti gli altri sottodomini di 'domain.localhost' (subdomain1.domain.localhost, subdomain2.domain.localhost, ...):

<VirtualHost *:80>
  ServerName pjtmain.localhost:80
  DocumentRoot "/Users/Toto85/Sites/pjtmain/public"
  RackEnv development
  <Directory "/Users/Toto85/Sites/pjtmain/public">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

3
Solo per notare. Non puoi unire l'host virtuale https e non https in uno. <VirtualHost *: 80 *: 443>. 80 Impossibile avere "SSLEngine acceso". È necessario disporre di 2 dichiarazioni VirtualHost separate per SSL e non SSL.
Gacek,

Risposte:


63

La domanda è piuttosto ambigua, ma cercherò di aiutarti.

Se si desidera che lo stesso virtualhost ascolti su più porte, procedere come segue:

Listen 80
NameVirtualHost *:80

Listen 8080    
NameVirtualHost *:8080

<VirtualHost *:80 *:8080>
  ServerName some.domain.name
  ServerAlias some.other.domain.name
  ....
</VirtualHost>

In generale, non si definiscono più host virtuali basati sul nome con lo stesso nome di dominio, a meno che non sia necessario utilizzare un protocollo diverso.

Per gli host virtuali basati su nomi SSL devi prestare particolare attenzione: per definizione non possono esserci più certificati sullo stesso IP: Porta, quindi, per evitare errori di certificato, dovrebbe essere un certificato wilcard, che copre tutti i nomi di dominio forniti.


2
+1 ma qualche piccola correzione: i certificati SSL non sono legati agli indirizzi IP ma a nomi comuni (CN) che devono essere uguali al nome host . Inoltre con l'estensione SNI è possibile avere più host virtuali con certificati diversi sullo stesso indirizzo IP. ( en.wikipedia.org/wiki/Server_Name_Indication )
Daniel Rikowski

3
Anche +1, per SSL dovrebbe essere <VirtualHost *: 80 *: 443>
fedmich
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.