HTTPS proxy

Installing an Nginx proxy with HTTPS

The first step is to install nginx on the server.

sudo apt -y install nginx

Put the following in a file called /etc/nginx/sites-available/tellusr. This requires that you are editing as root, for example by starting you favorite editor with sudo. Be sure to change tellusr.example.com to the name of the real domain name of you server.

server {
	server_name tellusr.example.com;

	listen 80;
	listen [::]:80;

	client_max_body_size 100G;
	send_timeout 1800s;
	proxy_connect_timeout 60s;
	proxy_read_timeout 1800s;
	proxy_send_timeout 1800s;

	index index.html;

	location / {
		proxy_pass http://127.0.0.1:8900;
	}
}

This configuration file is a good fit for typical uses of TellusR.

We then need to enable the script by performing the following two commands.

sudo ln -s /etc/nginx/sites-available/tellusr /etc/nginx/sites-enabled/tellusr
sudo service nginx reload

At this point tellusr should be available on port 80 via http. The steps that follow will add install an https certificate and make it accessible via https instead. This adds peer-to-peer encryption between the server hosting tellusr and the web browser.

The following steps will install the tools to prepare installation of a Let’s Encrypt certificate.

sudo apt -y install snapd
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

The step below should install the certificate itself. Be sure to replace the example email and domain name with a real email of the host maintainer and the real domain name of the server.

sudo certbot -m [email protected] --nginx -d tellusr.example.com

If you are protecting your site with ufw (Uncomplicated Firewall) you can open external ports for Nginx with:

sudo ufw allow 'Nginx Full'

(Other steps may be required depending on the security setup of the server.)