Je construis un proxy pour une API interne pour permettre aux clients de se connecter sans avoir à installer les certificats auto-signés.
Les clients (construits, possédés et utilisés uniquement en interne) se connecteront via SSL à la boîte nginx, où j'utilise XSendfile pour valider les informations d'identification au niveau de l'application (une application rails). Si les informations d'identification sont valides, la connexion est retransmise à nginx où il utilise proxy_pass pour envoyer la connexion sur le serveur en amont.
Maintenant, cela fonctionne très bien pour les connexions http standard, mais j'essaie de comprendre comment ajouter nos certificats dans le mélange.
Cette question est presque identique à celle-ci , mais avec des exigences de certificat maladroites.
Est-ce même possible avec nginx? Y a-t-il une meilleure solution?
Je me contenterais également de http du client -> nginx, et d'un certificat auto-signé de nginx à l'API.
la source
proxy_ssl_server_name on;
était tout ce dont j'avais besoin pour que cela fonctionne lorsque le proxy est acheminé vers un hôte sur Google App Engine à l'aide de son SSL intégré géré par Google! (Ce n'est pas un certificat auto-signé ou quoi que ce soit, donc il fallait juste cette ligne). Merci pour le bon conseil.Je pense que vous voulez probablement quelque chose comme ça (évidemment simplifié pour cet exemple):
La seule chose que vous pourriez avoir à changer serait de rendre l '"hôte" explicite - si, par exemple, votre nom d'hôte mandaté n'était pas le même que le nom d'hôte utilisé sur le serveur proxy nginx.
la source
Pour tous ceux qui rencontreront cela à l'avenir, j'ai fini par ne pas utiliser nginx pour cela.
Au lieu de cela, j'ai fini par utiliser stunnel en "mode client". Très facile à installer et fait exactement ce dont j'ai besoin.
la source