Je suis en train de configurer un nouvel hôte virtuel sur mon reverse proxy apache avec le mod rewrite, Lorsque je teste la configuration, tout fonctionne bien mais une seule page (page image) ne fonctionne pas. En cliquant sur la page image, j'obtiens l'URL locale dans le navigateur ( https://localserver:9251/share/collab?collabSession=ea4a80bf-6c19-473b-ad08-bdce391dbe19&type=join&user=username&isInitiator=true ).
les ports 9251, 433 et 80 sont activés dans ports.conf
ci-dessous ma configuration des hôtes virtuels :
<VirtualHost *:80>
ServerName publicdomaine.com
ServerAlias www.publicdomaine.com
Redirect Permanent / https://publicdomaine.com
</VirtualHost>
<VirtualHost *:443>
ServerName publicdomaine.com
ServerAlias www.publicdomaine.com
<IfModule mod_proxy.c>
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1
ProxyRequests Off
ProxyPreserveHost Off
ProxyPass / https://localserver/
ProxyPassReverse / https://localserver/
</IfModule>
SSLEngine on
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLCertificateKeyFile /etc/apache2/cert/mykey.pem
SSLCertificateFile /etc/apache2/cert/mycert.pem
SSLCertificateChainFile /etc/apache2/cert/bundle.crt
RewriteEngine On
LogLevel alert rewrite:trace6
RewriteCond %{QUERY_STRING} ^(.*)&studyUid=(.*)
RewriteCond %{QUERY_STRING} ^host=publicdomaine.com(.*)$
RewriteRule ^/ris/web/imageshare/startSession - [E=SUI_VAL:%1]
RewriteRule /ris/web/imageshare/startSession https://localserver/ris/web/imageshare/startSession?host=cimcsp1.cimy.local%{ENV:SUI_VAL} [P,QSA,L]
ErrorLog /var/log/signoff-error_log
CustomLog /var/log/signoff-access_log combined
</VirtualHost>
<VirtualHost *:9251>
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1
ProxyRequests Off
ProxyPreserveHost Off
ProxyPass / https://localserver:9251/
ProxyPassReverse / https://localserver:9251/
</VirtualHost>
J'ai observé l'échange http avec fiddler. échange de messages :
GET https://publichostname/ris/web/imageshare/startSession?host=publichostname&studyUid=1.3.51.0.1.1.10.233.24.237.333827.7779290494 HTTP/1.1
le reverse proxy réécrit le paramètre host en localserver :
GET https://publichostname/ris/web/imageshare/startSession?host=localserver&studyUid=1.3.51.0.1.1.10.233.24.237.333827.7779290494 HTTP/1.1
et la réponse est JSON :
cette réponse me tunnelise à :
CONNECT localserver:9251 HTTP/1.1
Host: localserver:9251
cela devrait être le tunnel moi avec le proxy inverse à :
CONNECT publichostname:9251 HTTP/1.1
Host: publichostname:9251