Lets say you wanted to run a local area network controller web service that was made by a company that you didn’t completely trust, what would be your options? If you wanted proper authenticated+encrypted access to it, you could setup a trustworthy VPN service like OpenVPN and remote into the LAN or you can also setup a reverse https proxy service that handles the TLS channel + basic authentication first before forwarding on the traffic to the internal web service. For example, Nginx is a pretty powerful and amazingly simple service to achieve this setup (just make sure to note the SSL certificate fingerprint :):
# /etc/nginx/sites-available/default # htpasswd -bc ssl.pwd user pass # openssl req -x509 -newkey rsa:2048 -nodes -keyout ssl.key -days 3650 -out ssl.crt # chown root:www-data ssl.* ; chmod 640 ssl.* # openssl x509 -in ssl.crt -noout -fingerprint server { listen 443 ssl; server_name 127.0.0.1; ssl_certificate /etc/nginx/sites-available/ssl.crt; ssl_certificate_key /etc/nginx/sites-available/ssl.key; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { auth_basic "Admin Area"; auth_basic_user_file /etc/nginx/sites-available/ssl.pwd; proxy_pass https://127.0.0.1:44300; } }
[…] NGINX HTTPS Reverse Proxy With Basic Auth – Jon’s FOSS Blog […]