im essayant de configurer Apache avec SSl et les requêtes SSL proxy sur mon instance tomcat. Je pense que j'ai fait le travail SSL mais il y a toujours une erreur qui apparaît:
Bad Gateway The proxy server received an invalid response from an upstream server.
* SSL Virtualhost *
LoadModule ssl_module modules/mod_ssl.so
Listen 443
<VirtualHost _default_:443>
SSLEngine On
SSLProxyEngine On
DocumentRoot "/var/apache-tomcat-7.0.34/webapps/Learn2Gether/"
SSLCertificateFile /etc/pki/tls/learn2gether/cert-6090205098829887.pem
SSLCertificateKeyFile /etc/pki/tls/learn2gether/private_key_unlocked.pem
SSLCertificateChainFile /etc/pki/tls/learn2gether/rubca-chain.pem
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
ServerName www.learn2gether.rubel.rub.de
ServerAlias learn2gether.rubel.rub.de
#RewriteRule ^\/$ /Learn2Gether/index.html [PT]
##RewriteRule ^/(.*)$ /$1 [PT]
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
</VirtualHost>
~
Redirection HTTP VH vers HTTPS
NameVirtualHost *:80
<VirtualHost _default_:80>
ServerName www.learn2gether.rubel.rub.de
ServerAlias learn2gether.rubel.ruhr-uni-bochum.de
RewriteEngine on
# DocumentRoot "/var/apache-tomcat-7.0.34/webapps/Learn2Gether/"
RewriteCond %{HTTP_HOST} !^learn2gether.rubel.ruhr-uni-bochum\.de [NC]
RewriteRule ^/(.*)$ http://learn2gether.rubel.ruhr-uni-bochum.de/$1 [R=301,L]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}$1 [L]
#RewriteRule ^\/$ /Learn2Gether/index.html [PT]
#RewriteRule ^/(.*)$ /$1 [PT]
#ProxyPass / https://localhost:8443/
#ProxyPassReverse / https://localhost:8443/
</VirtualHost>
Connecteur Apache Tomcats
<Connector port="8443"
protocol="HTTP/1.1"
connectionTimeout="20000"
compression="on"
compressionMinSize="32"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,text/css"
redirectPort="8443"
URIEncoding="UTF-8"
proxyPort="443"
proxyName="learn2gether.rubel.ruhr-uni-bochum.de"
scheme="https"
secure="true"
/>
apache-2.2
ssl
tomcat
mod-rewrite
virtualhost
SaifDeen
la source
la source
Réponses:
Lors du proxy de http ou https vers https, vous devez configurer apache en tant que client SSL . Apache parle à votre serveur Tomcat, il fonctionne après tout comme un client Web. Cependant Apache ne fonctionnera généralement pas comme un client SSL prêt à l'emploi.
Premièrement, je vous suggère de considérer d'abord si vous en avez vraiment besoin, pourquoi vous le faites. La pratique courante lorsque Tomcat et Apache vivent sur le même serveur consiste à faire en sorte que Tomcat serve simplement http (ou ajp) et décharge ssl sur le serveur Apache. Il n'est généralement pas nécessaire d'avoir SSL entre le serveur Apache et Tomcat. Ne pas avoir ssl sur le serveur tomcat va vous éviter bien des ennuis.
Tout ce que vous devez faire est par exemple de définir un connecteur HTTP sur le port 8080 dans votre instance tomcat, et de rediriger toutes les demandes à partir de votre hôte virtuel SSL apache:
Mais si vous décidez toujours que vous avez besoin de proxy SSL à SSL, vous devrez ajouter d'autres modifications. Apache doit pouvoir fonctionner en tant que client SSL, ainsi que serveur SSL. Quand Apache parle à un autre serveur en utilisant https, c'est après tout en jouant le rôle de client. Ce n'est pas si simple, et vous pouvez rencontrer de nombreux problèmes. Vous devrez ajouter ceci:
Ensuite, dans ce chemin, vous devez mettre le certificat CA utilisé pour signer le certificat utilisé par le serveur avec lequel vous communiquez. Si vous utilisez un certificat "auto signé", vous devrez le mettre dans ce répertoire.
Une fois que vous avez fait cela, vous devez exécuter "c_rehash" dans ce répertoire. c_rehash fait partie d'une distribution openssl standard. c_rehash crée des alias hachés dans ce répertoire. Apache en a besoin.
Pour tester si tout est là, vous pouvez faire ce qui suit:
si la connexion réussit, vous obtiendrez une invite vous permettant de taper une demande. Essayez quelque chose.
et voyez si vous obtenez quelque chose. Si ce test réussit, apache devrait aussi fonctionner.
Vous pouvez maintenant ajouter les instructions ReWriteRule ou Proxy pour transférer les connexions à votre serveur https.
la source