154 votes

Erreur lors de la poignée de main SSL avec le serveur distant

J'ai Apache2 (écoutant sur 443) et une application web fonctionnant sur Tomcat7 (écoutant sur 8443) sur Ubuntu.

J'ai configuré apache2 en tant que proxy inverse pour accéder à l'application web via le port 443 au lieu de 8443. De plus, j'ai besoin d'avoir une communication SSL non seulement entre le navigateur et apache2 mais aussi entre apache2 et tomcat7, j'ai donc configuré SSL à la fois sur apache2 et tomcat7. Si j'essaie d'accéder directement à l'application web de tomcat7, tout se passe bien. Le problème est que lorsque j'essaie d'accéder à l'application web de tomcat à travers apache2 (proxy inverse), une erreur apparaît dans le navigateur :

Erreur du Proxy
Le serveur proxy n'a pas pu gérer la requête GET /web_app.
Raison : Erreur lors de la poignée de main SSL avec le serveur distant

1voto

DAB Points 757

Mon problème était d'avoir un serveur Apache derrière un autre et d'avoir des certificats incompatibles sur chaque serveur.

Il m'a fallu un certain temps pour réaliser que

SSLCertificateFile

et

SSLCertificateKeyFile

pointaient vers des fichiers portant le même nom sur chaque serveur, mais que le premier serveur avait un certificat et une clé privée mis à jour par rapport au deuxième, donc le contenu des fichiers était différent.

0voto

Nux Points 1053

Notez que l'erreur peut également se produire lorsque votre système a TLSv1 désactivé. Par exemple, Ubuntu 20.x a TLSv1.0 désactivé par défaut. Par exemple, si vous avez quelque chose comme ceci :

Apache 2.4.41 sur Ubutntu20 (proxy) --[https]--> ancien Apache servant TLS v1.0

SSLProxyVerify etc ne vous aidera pas.

Ce que vous devez faire est d'activer TLS 1.0 dans openssl.conf. Au moins jusqu'à ce que vous puissiez mettre à jour le vieux serveur ...

Activation de l'ancien TLS sur Ubuntu

Alors dans Ubuntu 20.04.3 TLS pour activer effectivement TLSv1 changer /etc/ssl/openssl.cnf. En haut du fichier (avant toute section) ajoutez :

# Ajouté pour activer TLS1.0
openssl_conf = default_conf

Et à la toute fin du fichier

##
# Ajouté pour activer TLS1.0
[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
CipherString = DEFAULT@SECLEVEL=1
##

Les commentaires ne sont évidemment pas nécessaires, mais aideront lorsque vous voudrez désactiver à nouveau TLS1.

Une fois que vous aurez redémarré / redémarré tout devrait fonctionner correctement.

Notez que ceci est un changement global (à l'échelle du système). Ce n'est donc pas idéal, mais ça marche. Voir aussi : plus de notes sur Ubuntu et les versions TLS par défaut.

0voto

alex Points 169

Si l'hôte de votre proxy apache est différent de l'hôte de la cible du proxy (ou de son nom sni), définir -

ProxyPreserveHost Off

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X