Impossible de se connecter à httpd sur 443 avec une adresse IP, la négociation SSL du nom d'hôte échoue

0

J'ai rencontré un problème très étrange. Sur notre serveur, nous utilisons Solaris 10 avec httpd 2.2.19 et openssl 1.0.0d. Nous n'avons qu'un seul hôte virtuel:

<VirtualHost _default_:443> ServerName hostname.example.com:443

Avec hostname, le nom d’hôte correct est bien sûr. Lorsque nous allons naviguer sur le site en utilisant le nom d’hôte, la connexion échoue et je vois dans le journal error_log que la négociation SSL commence, affiche le vidage BIO, puis indique:

[debug] ssl_engine_kernel.c (1884): OpenSSL:> Write: client SSLv3 en lecture bonjour C

[debug] ssl_engine_kernel.c (1903): OpenSSL: Exit: erreur erronée

[debug] ssl_engine_kernel.c (1903): OpenSSL: Exit: erreur erronée

[info] [client 1x.xxx] Erreur de bibliothèque SSL 1 lors de l'établissement de la liaison (nom d'hôte du serveur.exemple.com:443)

[info] Erreur de la bibliothèque SSL: erreur 336204149: 140A1175: routines SSL: SSL_BYTES_TO_CIPHER_LIST: repli inapproprié

[info] [client xxxx] Connexion fermée à l'enfant 0 avec arrêt abortif (nomhôte du serveur.exemple.com:443)

[notice] pid enfant 28997 signal de sortie Défaillance de segmentation (11), coredump possible dans / usr / local / apache2 / logs

Quelqu'un a-t-il une idée du problème? Je ne peux pas pour la vie de penser pourquoi le nom d'hôte serait traité différemment de l'IP. Le protocole SSL3 est désactivé dans la configuration et une longue liste de chiffrements activés fonctionnant sur d'autres serveurs.

Scottie
la source

Réponses:

0

Vous ne devriez pas avoir le numéro de port dans le nom du serveur.

Utilisez-vous également l'hébergement virtuel basé sur le nom? Si c'est le cas, n'utilisez pas la valeur par défaut, mais utilisez * à la place.

Donc au lieu de cela:

<VirtualHost _default_:443>
    ServerName hostname.example.com:443
</VirtualHost>

avoir ceci:

NameVirtualHost *:443
<VirtualHost *:443>
    ServerName hostname.example.com
</VirtualHost>

Selon la documentation http://httpd.apache.org/docs/2.2/vhosts/examples.html#default :

Un hôte virtuel par défaut ne sert jamais une demande qui a été envoyée à une adresse / un port utilisé pour les hôtes virtuels nommés. Si la demande contient un en-tête Host: inconnu ou inexistant, elle est toujours servie à partir du vhost basé sur le nom principal (le vhost de cette adresse / port apparaissant en premier dans le fichier de configuration).

Barry Pollard
la source
Merci d'avoir pris le temps de répondre. Nous n'utilisons pas d'hébergement virtuel basé sur le nom. De plus, bien que je vois ce que vous voulez dire à propos du port, nous avons un autre serveur avec à peu près la même configuration exacte, et il semble fonctionner correctement
Scottie le
0

J'ai donc trouvé le moyen de le réparer, mais je ne suis pas sûr à 100% pourquoi cela l'a résolu. J'ai changé le ServerName de hostname.subdomain.domain: 443 à hostname.domain: 443. Le nom propre du serveur est hostname.subdomain.domain, mais j'ai remarqué dans le fichier hosts que l'adresse IP de ce serveur est la suivante:

*IP* hostname hostname.domain

Cela pourrait-il être pourquoi? Pourquoi le SSL serait-il si déroutant?

Scottie
la source