Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
antrtiz001
Partner - Contributor III
Partner - Contributor III

Connecting to a Qlik Sense Server through a RaspBerry PI

Hi all,

we are trying to connect to Qlik Sense Server through a RaspBerry PI that holds a private website and rises a private Wi-Fi network.
A sample Client connects to the private Wi-Fi network, obtains a private IP address through a DHCP engine and then navigates to the private website.
This website collects data from an external application reached through the internet.
When accessing the private website, the client is also given access to a remote Qlik Sense Server through a Ticket autentication

Setting proxy info on the RaspBerry PI, all the traffic is correctly sent to the Qlik Sense Server but communications stop when opening the Qlik Sense WebSocket

Qlik Sense server environment (here named serversensefqdn.it) works on port 7443 and has implemented ticket autentication proxy.
All Qlik Sense static objects are returned correctly while websocket data are not. Error using websocket is "500 Unable to route to 'http' request to the following url:

https://raspberry PI ip:7443/sense/app/app guid ....

 

Here are the RaspBerry PI Settings:

 

< VirtualHost *:7443>

ProxyPreserveHost On
ProxyPass / https://serversensefqdn.it:7443/
ProxyPassReverse / https://serversensefqdn.it:7443/

KeepAlive On

SSLEngine On
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyCheckPeerExpire Off

ProxyRequests Off


SSLCertificateFile /var/www/html/myproject/sso/client.pem
SSLCertificateKeyFile /var/www/html/myproject/sso/client_key.pem

RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket
RewriteRule /(.*) https://serversensefqdn.it:7443/$1 [P,L]

RewriteCond %{HTTP:Upgrade} !=websocket
RewriteRule /(.*) https://serversensefqdn.it:7443/$1 [P,L]

ProxyPass /app/ wss://serversensefqdn.it:7443/app/ retry=0
ProxyPassReverse /app/ wss://serversensefqdn.it:7443/app/ retry=0

ProxyPass /hub/qrsData wss://serversensefqdn.it:7443/hub/qrsData retry=1 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse /hub/qrsData wss://serversensefqdn.it:7443/hub/qrsData

ProxyPass /form/ https://serversensefqdn.it:4244/form/ retry=1 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse /form/ https://serversensefqdn.it:4244/form/

ProxyPass / https://serversensefqdn.it:7443/ retry=1 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse / https://serversensefqdn.it:7443/

 

ErrorLog ${APACHE_LOG_DIR}/ssl.error.log
CustomLog ${APACHE_LOG_DIR}/ssl.access.log combined


</VirtualHost>

 

Could someone help me through this problem?


Thans in advance

Antonio Rizzelli

1 Reply
antrtiz001
Partner - Contributor III
Partner - Contributor III
Author

In order to complete the scenario, here is the complete flow of the evironment

Predict_Schema.PNG

 1. Traffic is initiated by the client to the RP. Client cannot access the internet: network is not routed
2. RP sends internal website data back to the client
3. Client wants to connect to Qlik Server App
4. RP contacts Qlik Sense Server on the internet passing client credentials
5. Qlik Sense gives back data with ticket authentication
6. Ticket is given back to the client
7. Client communicates to the RP and the RP proxies requests to the Qlik Sense Server
8. Data requests are given back to the client through the proxy (static content, css, js, ...)
9. Traffic though the websocket is initiated but response is

500 Unable to route to 'http' request to the following url https://raspberry PI ip:7443/sense/app/app guid ....