Multiples SSL en la misma direccion IP con Apache y SNI

Tradicionalmente si querías poner un certificado SSL en un dominio, era necesario que dicho dominio dispusiera de una dirección ip propia adicional destinada para ello así como declarar su virtual host de esta forma*:

<VirtualHost 1.1.1.1:443>
....

*suponemos la direccion ip 1.1.1.1

Sin embargo desde la version 2.2.12 de apache ya no es necesario, al implementar SNI (Server Name Indication), por lo que podemos tener certificados SSL en dominios que comparten dirección ip.

Para ello es necesario declarar en el fichero httpd.conf ese namevirtualhost (en el caso de apache 2.4 no es necesario).

NameVirtualHost *:443

Y también definir los virtual host de los dominios que queremos con SSL y especificar el servername y serveralias.

<VirtualHost *:443>
...
ServerName dominio.com
ServerAlias www.dominio.com
...

Existe una directiva adicional llamada SSLStrictSNIVHostCheck la cual nos permite elegir si los navegadores que no soportan SNI pueden o no acceder a esos dominios.

Estos cambios requieren reiniciar apache.

Enlaces