I wanted to be able to get to a couple of internal only sites securely from outside of my home network. So, I added an https virtual server with password that proxies the internal stuff. It goes a little something like this:
enable the ssl module:
a2enmod ssl
make a cert
apache2-ssl-certificate
make an htpasswd file
htpasswd -c /etc/apache2/utility.passwd admin
setup apache to use port 443
echo “Listen 443″ >> /etc/apache2/ports.conf
create your virtual server
vi /etc/apache2/sites-available/utility_proxy
NameVirtualHost *:443
<VirtualHost *:443>
ServerName yourserver.yourdomain.com
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
<Location "/">
AuthType Basic
AuthName "Utility Server"
AuthUserFile /etc/apache2/utility.passwd
Require valid-user
</Location>
RewriteEngine On
DocumentRoot /var/www
#add rules here for your internal stuff
RewriteRule ^/routerproxy/(.*) http://192.168.1.254/$1 [P]
RewriteRule ^/localhost8080/(.*) http://localhost:8080/$1 [P]
</VirtualHost>
enable the virtual
ln -s /etc/apache2/sites-available/utility_proxy /etc/apache2/sites-enabled/utility_proxy
restart apache
/etc/init.d/apache2 restart
This is assuming you already have some means of getting to this server from the outside. Your proxies will be availible at https://yourserver.yourdomain.com/routerproxy/ etc. I had some trouble with having authentication on when the site that was being proxied also had authentication. So I had to change the Location tag so that rewrite rule was outside of the authenticaion in my apache server and only used the authentication on the proxied server.
Posted by challahc