Modo de empleo en los mismos Apache2 Server 2 certificados diferentes utilizando VirtualHost?
-
20-09-2019 - |
Pregunta
consigo un certificado de Gandi para un dominio www.mondomaine.fr Pero para sql.mondomaine.fr que quería utilizar un certificado SSL autofirmado.
Si sql.mondomaine.fr activo, el www.mondomaine.fr está utilizando el certificado autofirmado en lugar de la Gandiś uno.
Si desactivarlo del sql. todo funciona bien.
¿Cómo puedo manejar el uso de diferentes certificado?
Se costuras que la primera configuración VirtualHost está tomando para cada host virtual SSL.
Gracias por su ayuda.
Aquí está mi configuración:
Para phpMyAdmin:
<VirtualHost *:443>
# Chemin vers les données web
DocumentRoot /usr/share/phpmyadmin
ServerName sql.mondomaine.fr
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/phpmyadmin.pem
</VirtualHost>
Para mondomaine.fr
<VirtualHost *:443>
ServerName www.mondomaine.fr
DocumentRoot /var/www/mondomaine/
CustomLog /var/log/apache2/secure_access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/mondomaine.fr.crt
SSLCertificateKeyFile /etc/ssl/mondomaine.fr.key
SSLCACertificateFile /etc/ssl/GandiStandardSSLCA.pem
SSLVerifyClient None
</VirtualHost>
La configuración es correcto porque si la primera VirtualHost leer es PHPMyAdmin.pem ModSSL usar éste y si es mondomaine.fr.crt la primera VirtualHost, Apache utilizar éste.
Solución
Usted está ejecutando en contra de un problema general con HTTP sobre SSL - cuando un cliente se conecta, se especifica qué host que quiere conectarse a usar el anfitrión: cabecera HTTP, pero que sólo viene después el protocolo de enlace SSL (cuando se presenta el certificado) ha completado. Las versiones recientes de las extensiones de soporte TLS (especificados en el RFC 4366), que permite al cliente especificar qué acogida que tiene la intención de conectar durante el protocolo de enlace SSL, con la intención específica de apoyo host virtuales; citar el RFC:
""" TLS no proporciona un mecanismo para que el cliente indique un servidor de la nombre del servidor que está en contacto. Puede ser deseable para los clientes para proporcionar esta información para facilitar conexiones seguras a servidores que alojan varios servidores 'virtuales' en un solo subyacente dirección de red. "" "
De acuerdo a Wikipedia, las últimas versiones de Firefox, Opera, Internet Explorer, Chrome y Safari son compatibles con esta extensión; otros clientes todavía no se enviarían a la extensión, y que está fuera de suerte allí. También tiene que utilizar al menos TLS 1.1 para habilitar el soporte de extensiones.
Hay algunos href="http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI" sobre cómo configurar esto con Apache; puede que tenga que reconstruir OpenSSL y / o Apache con opciones específicas, dependiendo de su configuración local.
Otros consejos
Sus depens cómo se creó su certificado. si usted lo compró sólo para el subdominio www no trabajará para SQL. lo que hay que hacer es que para permitir que cualquier subdominio, pero que yo sepa estos certificados son más caros.
En el otro lado se puede utilizar su propio ceritificate, sólo necesita seguro de lo que estás poniendo al crear su virtutalhost
<virtualhost XXX.XXX.XXX.XXX:443>
serverName www.mondomaine.fr
# Gandiś ceritificate
</virtualhost>
<virtualhost XXX.XXX.XXX.XXX:443>
serverName sql.mondomaine.fr
# your own certificate stuff
</virtualhost>