Bonjour,
Je dispose depuis plusieurs années un serveur dédié pour lequel la configuration des sites en https fonctionne.
On a loué un nouveau serveur et un load balancer. Interessé par la possibilité de gérer les certificats SSL depuis le load balancer, j'ai donc commandé un certificat SSL pour un domaine qui n'en avait pas encore et le certificat est bien actif.
Mon problème est maintenant la configuration côté load balancer et Apache 2.
J'ai 2 fermes de serveurs, une pour le port 80 en http et l'autre avec le port 443 (j'ai mis le protocole https, mais ça revient en http).
Chaque ferme possède le même serveur, seul le port change.
J'ai donc aussi 2 front-ends, un en http avec le port 80 et l'autre en https avec le port 443, ce dernier a le certificat précédent par défaut.
Côté Apache2, j'ai créé un deuxième vhost sur le port 443, qui a la même configuration que celui qui est sur le port 80 (c'est à dire que pour l'instant, il n'y a pas d'options concernant le SSL, ni de redirection de l'http vers l'https). J'ai regardé le guide https://docs.ovh.com/fr/load-balancer/configure-iplb/ mais je ne vois pas d'option SSL dans le frontend.
Y'a une option "Chiffrer les requêtes avec SSL" dans les serveurs, si je l'active, j'ai une erreur 403 quand j'essaye d'accéder au site en https :
> Forbidden
>
> You don't have permission to access this resource.
> Apache/2.4.25 (Debian) Server at www.XXXXXXX.com Port 80
Le plus bizarre, c'est la réponse du serveur avec le port 80.
Si je désactive l'option, j'ai une erreur 400 Bad Request :
> Bad Request
>
> Your browser sent a request that this server could not understand.
> Reason: You're speaking plain HTTP to an SSL-enabled server port.
> Instead use the HTTPS scheme to access this URL, please.
> Apache/2.4.25 (Debian) Server at www.YYYYY.fr Port 443
Sachant que le site www.YYYYY.fr est un autre site sur le serveur qui ne passe pas par le load balancer.
Donc, j'ai le site http://www.XXXXXXX.com qui marche très bien en http
Si j'active le chiffrement SSL sur le serveur du load balancer et que j'essaye d'accéder à https://www.XXXXXXX.com, j'ai une erreur 403 avec une réponse du serveur en port 80.
Si je désactive le chiffrement SSL sur le serveyr du load balancer et que j'essaye d'accéder à https://www.XXXXXXX.com, j'ai une erreur 400 avec une réponse d'un autre vhost en port 443.
J'ai essayé d'activer le SSL sur le vhost de www.XXXXXXX.com mais sans certificat, mais du coup, apache ne redémarre pas.
Je pense qu'il y a un soucis avec ma configuration Apache, mais je ne sais pas de quoi il peut s'agir.
Sur le serveur sur lequel j'avais ce problème, j'ai réussi à résoudre le soucis.
Du coup, je me suis attaqué au 2ème serveur (le nouveau), j'ai un peu le problème inverse.
Quand dans le serveur (côté load balancer) j'active l'option "Chiffrer les requêtes avec SSL", lorsque j'essaye d'accéder au site en https, j'ai une erreur Error 503: Backend unavailable, et dans les logs du Vhost 443, j'ai ça :
10.110.33.127 - - [21/Oct/2022:15:17:40 +0200] "\x16\x03\x01" 400 488 "-" "-"
D'après ce que j'ai lu, "\x16\x03\x01" c'est le signe du hand shake SSL, et de ce que je comprends, le serveur ne répond pas correctement, alors que la configuration du Vhost est rigoureusement la même entre les deux serveurs. J'ai regardé la conf SSL, et c'est aussi la même, y'a bien le port 443 dans ports.conf, openssl est bien installé, les mêmes modules sont activés sur les deux serveurs.
Et pour info, si je désactive "Chiffrer les requêtes avec SSL" sur le load balancer, là, ça marche. Mais bon, on perd l'intérêt de passer en SSL.
Une solution que j'avais trouvé, c'était d'activé le site SSL par défaut, sauf que chez moi ça ne marchait pas car le fichier de conf de ce site commençait par un "d" et que le fichier de conf du site que je veux faire marcher commence par "07", j'ai donc renommé le fichier "default-ssl.conf" en "000-default-ssl.conf", et comme le fichier se charge avant, ça active la prise en charge du SSL.