J'ai Apache Tomcat en cours d'exécution avec SSL activé. J'ai Apache HTTP Server agissant comme un proxy inverse, donc si mes utilisateurs frappent http: // myserver / tomcat / ils sont passés à http: // myserver: 8080 .
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
J'ai également un serveur HTTP Apache configuré pour SSL, donc lorsque les utilisateurs frappent https: // myserver / tomcat / ils doivent être transmis à https: // myserver: 8443 / .
Avec la configuration actuelle de ProxyPass et ProxyPassReverse, ils vont être redirigés vers l'URL non SSL. Comment puis-je configurer le proxy pass pour qu'il redirige vers différents protocoles et ports en fonction de la demande entrante?
Autrement dit, si quelqu'un entre via HTTPS, comment puis-je le rediriger vers mon tomcat @ https: // myserver: 8443 ?
Mise à jour:
@ mike-insch
J'ai essayé:
NameVirtualHost *:443
<VirtualHost *:80>
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>
<VirtualHost *:443>
ProxyPass /tomcat/ https://myserver:8443/
ProxyPassReverse /tomcat/ https://myserver:8443/
</VirtualHost>
Maintenant, quand je visite: https: // myserver / tomcat / j'obtiens "page non trouvée". Dans le journal des erreurs, je vois "Le fichier n'existe pas: / var / apache2 / htdocs / tomcat"
Ce qui est correct, mais je m'attendais à ce que la demande soit acheminée vers tomcat s'exécutant sur https: // myserver: 8443 / .
Je suppose que je dois regarder davantage les hôtes virtuels, à moins que quelque chose ne paraisse manifestement faux.
la source
NameVirtualHost
directive ici. De plus, vous devrez ajouter les directives appropriées pour activer SSL dans votre<VirtualHost *:443>
section.Réponses:
Vous devez le faire via deux
<VirtualHost *:X>
directives indépendantes . VosHTTP
directives entrent à l'intérieur<VirtualHost *:80>
tandis que vosHTTPS
directives entrent<VirtualHost *:443>
. Ajustez si nécessaire si votre serveur a plusieurs hôtes virtuels basés sur l'adresse ou le nom configurés. Voir la documentation Apache 2 pour plus de détails.la source
Pour être complet: si c'est une option, c'est une bonne idée de mettre fin à SSL chez Apache, plutôt que de laisser Tomcat le gérer également. Fournir Tomcat n'est accessible qu'à partir d'Apache, c'est plus simple et non moins sécurisé.
Dans cette configuration, Apache procède au proxy HTTP et HTTPS pour
http://myserver:8080/
:la source