J'ai suivi ce guide: http://hints.macworld.com/article.php?story=20041129143420344
Voici ma définition d'hôte virtuel
<VirtualHost *:443>
SSLEngine on
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
CacheDisable *
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
DocumentRoot "/Users/me/projects/myproject/public"
ServerName ssl.mydomain.com
ServerAlias *.ssl.mydomain.com
SSLCertificateKeyFile "/private/etc/apache2/certs/webserver.nopass.key"
SSLCertificateFile "/private/etc/apache2/certs/newcert.pem"
SSLCACertificateFile "/private/etc/apache2/certs/demoCA/cacert.pem"
SSLCARevocationPath "/private/etc/apache2/certs/demoCA/crl"
ErrorLog "/Users/me/Desktop/ssl.log"
ProxyPass / https://localhost:3002/
ProxyPassReverse / https://localhost:3002
ProxyPreserveHost on
</VirtualHost>
Et lorsque j'essaie de me connecter au sevre viov du navigateur Web, j'obtiens cette erreur:
[Thu Feb 02 16:50:40 2012] [error] (502)Unknown error: 502: proxy: pass request body failed to 127.0.0.1:3002 (localhost)
[Thu Feb 02 16:50:40 2012] [error] [client 96.11.81.39] proxy: Error during SSL Handshake with remote server returned by /session/new
[Thu Feb 02 16:50:40 2012] [error] proxy: pass request body failed to 127.0.0.1:3002 (localhost) from 96.11.81.39 ()
comment déboguer / corriger cela?
apache-2.2
ssl
https
virtualhost
NullVoxPopuli
la source
la source
SSLProxyCheckPeerName
remplace,SSLProxyCheckPeerCN
mais cela ne fonctionnera que si vous spécifiez toutes les directives.Ne vous embêtez pas avec HTTPS entre votre serveur frontal et votre serveur principal, il est inutile d'activer SSL pour une
localhost
connexion.Pour clarifier, utilisez
ProxyPass / http://localhost:3002/
au lieu deProxyPass / https://localhost:3002/
Alternativement, si vous voulez vraiment connecter votre proxy inverse au serveur principal à l'aide de SSL également (surtout utile lorsque ce serveur n'est pas là où se trouve le proxy inverse Apache Httpd), en plus de
https://backend-server-address
, utilisez lesSSLProxy*
directives pour configurer le Certificats CA, comme indiqué dans l'introduction de lamod_proxy
documentation . En particulier, vous devrez configurerSSLProxyCACertificateFile
et vous assurer que le certificat du serveur d'arrière-plan est émis avec le bon nom d'hôte tel que vu par Apache Httpd (c'est-localhost
à- dire dans votre cas).Si vous ne vous connectez pas à votre serveur principal à l'aide de SSL, il peut ne pas détecter que vous utilisez réellement SSL et être configuré pour vous forcer à passer à SSL (d'où les redirections infinies). Vous voudrez peut-être regarder des mécanismes similaires à ce que Jetty fait avec son
forwarded
option (pour pouvoir dire au back-end qu'il est derrière un proxy). Les rails peuvent être en mesure d'interpréter leX-Forwarded-Proto
par défaut. Dans ce cas, ajoutez ceci à votre configuration Apache (dans l'hôte virtuel SSL):Il semble y avoir un problème similaire discuté ici , par exemple.
la source
J'ai eu un problème similaire (les mêmes journaux d'erreurs), sauf que le proxy transférait le trafic https vers un autre hôte.
Étant donné que j'étais paresseux et que les hôtes se trouvent dans mon propre réseau isolé, ces directives ont résolu le problème:
SSLProxyVerify none
SSLProxyCheckPeerCN off
la source
Si le serveur principal utilise un certificat auto-signé obsolète, une option supplémentaire est nécessaire (s'il n'y a pas d'accès au serveur principal):
SSLProxyCheckPeerExpire désactivé
la source