Good day,

I am using Apache HTTPd w/Mod_Proxy to proxy Apache Guacamole. The httpd side of things does a client side certificate validation. On Chrome and FF, everything works just fine, however on Safari, it does not. If I go direct to the Guacamole via Safari bypassing the mod_proxy, Safari works.

Using the developer tools in Safari, the /guacamole/api/tokes request is not getting the certificate "re-passed" by safari and apparently Chrome and FF handle this properly. Safari is important as the iPad uses Safari and FF/Chrome do not deal with client side certs loaded in the iOS keychain.

Below are what I believe are important details. I am hoping it is something simple I am missing and look forward to your ideas. I also believe this to be something that needs to be addressed on the mod_proxy side, and not guacamole.

Error from Safari's web console
-------------------------------
Failed to load resource: The server “https://xx.xx.xx” requires a client certificate. (when requesting the above path /guacamole/api/tokes)

NOTE: This happens after the initial prompt for my certificate. Also note, I have an instance of ZoneMinder proxied, along with my Synology NAS, and they function just fine under Safari.

HTTPd modules loaded for proxy:
-----------------------------
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_express_module modules/mod_proxy_express.so

My HTTPd vhost configuration:
-----------------------------
<VirtualHost *:443>
DocumentRoot "/web/MyRoot"
ServerName xx.xx.xx:443
SSLEngine on
SSLCertificateFile /etc/CA/certs/xx.xx.xx.crt
SSLCertificateKeyFile /etc/CA/private/xx.xx.xx.key
SSLCACertificateFile /etc/CA/certs/xxx.crt
SSLCARevocationFile /etc/CA/crl/xxx.crl
SSLCARevocationCheck chain
SSLVerifyClient require
SSLVerifyDepth 10
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

# Pre Apache 2.4
<Location />
     SetEnv no-gzip
</Location>

<Location /guacamole/>
  Order allow,deny
  Allow from all
  ProxyPass http://192.168.x.x:8080/guacamole/ flushpackets=on
  ProxyPassReverse http://192.168.x.x:8080/guacamole/
</Location>

<Location /guacamole/websocket-tunnel>
  Order allow,deny
  Allow from all
  ProxyPass ws://192.168.x.x:8080/guacamole/websocket-tunnel
  ProxyPassReverse ws://192.168.x.x:8080/guacamole/websocket-tunnel
</Location>

Thanks!
Scott

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org

Reply via email to