Declaring multiple ports for the same VirtualHosts

81,506

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:
81,506

Related videos on Youtube

user65567
Author by

user65567

Updated on September 17, 2022

Comments

  • user65567
    user65567 over 1 year

    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>
    
    • Gacek
      Gacek almost 10 years
      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.
    • Ken Ingram
      Ken Ingram over 7 years
  • Thomas van Broekhoven
    Thomas van Broekhoven about 11 years
    +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)
  • fedmich
    fedmich almost 10 years
    +1 too, for SSL it should be <VirtualHost *:80 *:443>
  • Dat TT
    Dat TT over 4 years
    On 2.4, you will get this error: AH00548: NameVirtualHost has no effect and will be removed in the next release