Enfin, j’ai trouvé la solution. L’en-tête X-Forwarded-Proto doit être défini ; il sert à identifier le protocole (HTTP ou HTTPS) utilisé par le client pour se connecter à votre proxy ou équilibreur de charge.
Puisque j’utilise HAProxy comme serveur proxy, j’ai dû ajouter cette ligne à ma configuration HAProxy :
http-request set-header X-Forwarded-Proto https if { ssl_fc }
Désormais, la connexion fonctionne correctement même lorsque l’option « forcer HTTPS » est activée.