Je suis dans une situation où le site web principal est une application ancienne écrite en ColdFusion que j'ai récemment migrée de MX 6.1 à 9.0.1. Une autre partie du site est un blog/forum en PHP5 sur WordPress. Maintenant, j'ajoute une fonction d'adhésion payante et j'intègre l'API Chargify V2 en utilisant Ruby et Sinatra. Amusant, hein ? Quoi qu'il en soit, pour l'instant, j'ai commencé à faire fonctionner les choses en utilisant mod-proxy pour envoyer des requêtes depuis un certain sous-répertoire du site principal de CF vers l'application Sinatra. Cela fonctionne bien sur HTTP ; du port 80 au port 9292. Mais que se passera-t-il lorsque j'essaierai d'utiliser HTTPS ; Port 443 à Port 9292 ? Je n'ai pas de certificat pour cet hôte car il n'a pas été nécessaire d'en avoir un dans le passé, donc je ne sais pas comment expérimenter. Je veux juste être sûr que le navigateur ne se plaindra pas de cet arrangement peu orthodoxe. Je ne m'inquiète pas vraiment de la sécurité de la soumission du formulaire car l'application l'encrypte sans SSL. La seule raison pour laquelle je veux utiliser SSL est la confiance de l'utilisateur. Il est donc de la plus haute importance qu'il n'y ait pas de plaintes de la part du navigateur qui pourraient réduire la confiance de l'utilisateur (et donc les conversions).
Réponse
Trop de publicités?Les utilisateurs n'auront aucune idée que la connexion n'est pas cryptée entre le serveur proxy et le serveur dorsal ; leur connexion n'est que vers le proxy. Mais je ne peux pas reprocher à vos utilisateurs de ne pas faire confiance au cryptage des données de formulaire en dehors de SSL - je ne le ferais pas non plus !
En tout état de cause, vous ne devriez pas déployer un système HTTPS-proxy-to-HTTP de cette manière à moins d'être absolument sûr que le trafic entre le proxy et le backend est sécurisé. Si ce domaine de diffusion est accessible à n'importe quel utilisateur (au lieu des seuls serveurs), par exemple, ils pourraient facilement empoisonner l'ARP et capturer ce trafic.
S'il y a le moindre risque, utilisez SSL pour la communication entre le proxy et le backend - il n'y a pas beaucoup d'efforts à faire pour le mettre en place.
Pour effectuer un test, il suffit de mettre en place un certificat auto-signé et de lancer une liste d'écoute SSL.
Listen 443
<VirtualHost *:443>
ServerName ssl.example.com
SSLEngine On
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/cert.key
ProxyPass / http://backend:9292/
ProxyPassReverse / http://backend:9292/
</VirtualHost>