Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Declare multiple ports for the same 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>

How can I declare a new port ('listen', ServerName, ...) for 'domain.localhost'?

If I add the following code, apache works (too much) also for all other subdomain of '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>
share|improve this question
    
Just to note. You cant join https and non-https virtual host into one. <VirtualHost *:80 *:443>. 80 Cannot have "SSLEngine on". You have to have 2 sepearate VirtualHost declarations for SSL and non-SSL. –  Gacek May 10 at 12:57
add comment

1 Answer

up vote 7 down vote accepted

The question is somewhat ambiguous, but I'll try to help.

If you want the same virtualhost to listen on multiple ports, then you do this:

Listen 80
NameVirtualHost *:80

Listen 8080    
NameVirtualHost *:8080

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

Generally speaking you don't define multiple name-based VirtualHosts of the same domain name, unless you need to use a different protocol.

For SSL name-based virtualhosts you have to be extra careful: by definition there can not be multiple certificates on the same IP:Port, so, to avoid certificate errors it would have to be a wilcard certificate, covering all served domain names.

share|improve this answer
    
+1 but some small correction: SSL certificates are not tied to IP adresses but to common names (CN) which must equal the host name. Also with the SNI extension it is possible to have multiple virtual hosts with different certificates on the same IP address. (en.wikipedia.org/wiki/Server_Name_Indication) –  Daniel Rikowski Mar 11 '13 at 14:55
    
+1 too, for SSL it should be <VirtualHost *:80 *:443> –  fedmich Jun 10 at 23:10
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.