Modo de empleo en los mismos Apache2 Server 2 certificados diferentes utilizando VirtualHost?

StackOverflow https://stackoverflow.com/questions/1548288

  •  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.

¿Fue útil?

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>
scroll top