J'utilise un serveur apache (2.4) configuré comme loadbalancer devant 2 serveurs apache. Cela fonctionne bien lorsque j'utilise des connexions http entre le loadbalancer et les backends, mais l'utilisation de https ne fonctionne pas. La configuration du loadbalancer :
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
<Proxy balancer://testcluster>
BalancerMember https://[Backend1]:443/test
BalancerMember https://[Backend2]:443/test
</Proxy>
ProxyPass /test balancer://testcluster
Les backends n'ont pour l'instant que des certificats auto-signés, c'est pourquoi la vérification des certificats est désactivée.
Le journal des erreurs de l'équilibreur de charge contient ce qui suit :
[proxy:error] [pid 31202:tid 140325875570432] (502)Unknown error 502: [client ...] AH01084: pass request body failed to [Backend1]:443 ([Backend1])
[proxy:error] [pid 31202:tid 140325875570432] [client ...] AH00898: Error during SSL Handshake with remote server returned by /test/test.jsp
[proxy_http:error] [pid 31202:tid 140325875570432] [client ...] AH01097: pass request body failed to [Backend1]:443 ([Backend1]) from [...] ()
La page d'erreur dans le navigateur contient :
Proxy Error
The proxy server could not handle the request GET /test/test.jsp.
Reason: Error during SSL Handshake with remote server
Comme je l'ai déjà indiqué ci-dessus, le fait de changer la configuration pour le protocole http et le port 80 fonctionne. Les connexions https entre le client et l'équilibreur de charge fonctionnent également, le module ssl de l'équilibreur de charge semble donc être correctement configuré. La connexion directe au backend via https ne produit pas non plus d'erreurs.
Merci d'avance pour votre temps
Modifier : J'ai compris, le problème est que le nom commun de mon certificat ne correspond pas au nom du serveur. J'ai pensé que SSLProxyVerify aucun devrait permettre d'ignorer cette incohérence, mais ce n'est pas le cas. Avant la version 2.4.5 d'Apache, cette vérification peut être désactivée en utilisant la commande SSLProxyCheckPeerCN désactivé mais sur les versions supérieures (j'utilise 2.4.7) SSLProxyCheckPeerName désactivé doit également être spécifié.
Documentation Apache pour sslproxycheckpeername
La configuration de travail est la suivante :
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
<Proxy balancer://testcluster>
BalancerMember https://[backend1]:443/test
BalancerMember https://[backend1]:443/test
</Proxy>
ProxyPass /test balancer://testcluster
Malheureusement, je ne peux pas répondre à ma propre question, faute de réputation, et j'ai donc modifié ma question, J'espère que cela aidera ceux qui rencontrent un problème similaire.