Je dispose d'un serveur Windows accessible via une adresse IP publique avec des hôtes virtuels Apache configurés pour transmettre le proxy à divers serveurs internes avec des applications et des services Web (Apache agissant en tant que proxy inverse). Sur l'un des serveurs internes, je veux configurer HTTPS en utilisant letsencrypt.Possible de servir le certificat SSL/TLS du serveur interne utilisant Apache comme proxy inverse?
J'ai réussi à obtenir un certificat de travail et une configuration de serveur sur le serveur interne, mais le problème est que mon Reverse Proxy (Apache) ne souhaite pas canaliser ce trafic HTTPS. Editer: Je sais qu'il serait plus facile de configurer le proxy inverse avec les certificats, mais Let's Encrypt n'a pas encore de bonnes options automatisées pour Windows et changer manuellement les certificats tous les 60 jours environ serait vraiment fastidieux.
La configuration de l'hôte virtuel dans Apache 2.4 (Windows) ressemble à ceci:
<VirtualHost *:443>
ServerName somesubdomain.mydomain.com
DocumentRoot "E:/Apache2/htdocs"
DirectoryIndex index.html
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass/https://10.3.1.83/
ProxyPassReverse/ https://10.3.1.83/
</VirtualHost>
Sur la 10.3.1.83 (Ubuntu/Nginx) en utilisant le certbot de letsencrypt, j'ai produit des certificats valides et Nginx pour servir configuré HTTPS plus les certificats.
Lorsque j'accède au serveur Ubuntu/Nginx depuis l'intérieur du réseau local, tout fonctionne comme une excuse. En utilisant Chrome DevTools, je peux vérifier que les serveurs ont le bon certificat LetsEncrypt.
Accès au sous-domaine correspondant de l'extérieur (Internet), elle retourne une erreur de serveur interne Page et dans les journaux Apache me dit ce qui suit:
AH00961: HTTPS: failed to enable ssl support for 10.3.1.83:443 (10.3.1.83)
Edit: J'ai finalement trouvé quelques réponses: On dirait que la SNI proxing n'est pas implémenté dans Apache, seulement "SNI virtual hosting". On pourrait cependant utiliser HAProxy ou d'autres projets.
Apache HTTPS reverse proxy with SNI without key on the proxy https://serverfault.com/questions/614806/apache-mod-proxy-with-https-without-key-material-using-sni https://serverfault.com/questions/625362/can-a-reverse-proxy-use-sni-with-ssl-pass-through/625364
<< Le proxy ne serait pas capable de lire l'en-tête "Host" >>. J'avais cru comprendre que les nouveaux Apache avaient mis en place un SNI qui permettait quelque chose comme ça. – NicoEpp
Les fonctionnalités SNI (https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI) sont des extensions du protocole SSL, si vous visez une large audience, vous ne pouvez pas compter sur cette fonctionnalité car beaucoup d'anciennes applications ne sont pas encore compatibles. L'URL que j'ai donnée montre les navigateurs compatibles, évidemment c'est trop récent. (Par exemple: "Internet Explorer 7.0 ou version ultérieure (sur Vista, pas XP)") – Fabien
Mon application est uniquement pour les utilisateurs dans une certaine zone. De plus tous les nouveaux navigateurs ont SNI mis en œuvre depuis des années. Comment pourrais-je activer SNI dans Apache? – NicoEpp