Question

Je tente d'installer nos serveurs pour autoriser le trafic via le protocole SSL. Je suis conscient que SSL ne fonctionne pas avec nom d'hôte virtuel, mais nous avons tous nos serveurs apache sur les machines virtuelles avec les adresses IP privées dédiées. Nous avons une machine virtuelle primaire qui a la configuration mod_proxy pour acheminer le trafic vers la vms appropriée.

Cependant, pour acheminer le trafic https nous avons besoin d'avoir le certificat installé sur le proxy ainsi que les PMV. Nous avons un certificat générique qui peut être utilisé dans tous nos hôtes. Tout semble fonctionner correctement, mais je reçois ce qui suit dans les journaux apache pour le proxy:

[warn] Init: serveur SSL IP / Conflit de port: host1.domain.com:443 (/ etc / apache2 / sites-enabled / host1: 1) par rapport à host2.domain.com:443 (/ etc / apache2 / sites activés / host2: 1)

Il est l'un des messages d'erreur pour chaque hôte, nous avons mis en place sur le proxy. Notre configuration de l'hôte virtuel pour le proxy est affiché ci-dessous:

<VirtualHost ipaddress:443>
    ServerName host1.domain.com
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / https://privateip:443/
    ProxyPassReverse / https://privateip:443/

    SSLProxyEngine on
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

Est-il possible que je puisse obtenir ce travail?

Était-ce utile?

La solution

On dirait que Apache vous avertit que vous avez plusieurs sections avec le même <VirtualHost> adresse IP et le port ... dans la mesure où la faire fonctionner sans avertissement préalable, je pense que vous auriez besoin d'utiliser quelque chose comme Nom du serveur Indication (SNI), un moyen d'identifier le nom d'hôte demandé dans le cadre de la négociation SSL. Fondamentalement, il vous permet de faire l'hébergement virtuel basé sur le nom sur SSL, mais je ne sais pas à quel point il est pris en charge par les navigateurs. Autre que quelque chose comme SNI, vous êtes essentiellement limité à un nom de domaine activé SSL pour chaque adresse IP que vous exposez à l'Internet.

Bien sûr, si vous êtes en mesure d'accéder aux sites correctement, vous serez probablement bien ignorer les avertissements. Ces particuliers ne sont pas les très graves - ils sont principalement une indication de ce qu'il faut regarder si vous rencontrez des problèmes

Autres conseils

Pour autant que je sache, Apache prend en charge depuis la version 2.2.12 SNI Malheureusement, la documentation ne reflète pas encore ce changement.

Optez pour http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI jusqu'à c'est fini

Vous pourrez peut-être remplacer le:

VirtualHost ipaddress:443

avec

VirtualHost *:443

Vous avez probablement todo cela sur tous vos hôtes virt.

Il sera probablement éclaircir ce message. Laissez la directive ServerName inquiétude au sujet de la demande de routage de message.

Encore une fois, vous ne pouvez pas être en mesure de le faire si vous avez des alias de plusieurs IP sur la même machine.

Le VirtualHost ressemblerait à ceci:

NameVirtualHost IP_Address:443

<VirtualHost IP_Address:443>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/ca.crt    # Where "ca" is the name of the Certificate
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    ServerAdmin webmaster@domain_name.com
    DocumentRoot /var/www/html
    ServerName www.domain_name.com
    ErrorLog logs/www.domain_name.com-error_log
    CustomLog logs/www.domain_name.com-access_log common
</VirtualHost>

Apache ne supporte pas le protocole SSL sur l'hôte virtuel basé sur le nom, uniquement sur les hôtes virtuels basés sur IP.

Source: Apache 2.2 SSL FAQ question Pourquoi est-il pas possible de utilisation de serveurs virtuels-basé sur le nom d'identifier les différents hôtes virtuels SSL?

Contrairement à SSL, la spécification TLS permet (comme mentionné par quelqu'un d'autre SNI) pour les hôtes à base de nom, mais Apache ne supporte pas encore cette fonctionnalité. Il supposément dans une version future lors de la compilation contre OpenSSL 0.9.8.

En outre, mod_gnutls prétend soutenir SNI, mais je ne l'ai jamais fait essayé.

Vous devez d'abord ip NameVirtualHost: 443 dans votre fichier config! Vous avez probablement l'un avec 80 à la fin, mais vous aurez également besoin d'un 443.

Deuxièmement, vous avez besoin d'un certificat * de .domaine (générique) (il est possible de faire un)

Troisièmement, vous pouvez fabriquer des toiles que de something.domain dans une ip (à cause du certificat)

Vous devez ajouter ci-dessous une partie pour activer la fonctionnalité avec IP NameVirtualHost donné.

NameVirtualHost IP_Address:443
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top