.NET core app with SignalR with SSL with Apache Reverse Proxy Configuration
<IfModule mod_ssl.c> <VirtualHost *:443> RewriteEngine On ProxyPreserveHost On ProxyRequests Off # allow for upgrading to websockets RewriteEngine On RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule /(.*) ws://localhost:5000/$1 [P,L] RewriteCond %{HTTP:Upgrade} !=websocket [NC] RewriteRule /(.*) http://localhost:5000/$1 [P,L] ProxyPass "/" "http://localhost:5000/" ProxyPassReverse "/" "http://localhost:5000/" ProxyPass "/chatHub" "ws://localhost:5000/chatHub" ProxyPassReverse "/chatHub" "ws://localhost:5000/chatHub" ServerName site.com SSLCertificateFile /etc/letsencrypt/live/site.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/site.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule>
References
https://gist.github.com/technoknol/f21ae396f463e78e431bd89cc41b83ee
https://stackoverflow.com/questions/43552164/websocket-through-ssl-with-apache-reverse-proxy