SSL Configuration
SSL requirements
- A domain name
- SSH access
- sudo privileges
Installing dependencies
This tutorial will use Ubuntu Jammy 22.04 LTS as the operating system, and Cloudflare as the DNS provider.
To install the dependencies, you will need to run the following commands:
sudo apt update && sudo apt upgrade
sudo apt install nginx certbot python3-certbot-nginx
Adding a domain name
For this, we will want to go to Cloudflare, and create an A record for our domain with the name you want and your server’s Public IP.
Setting nginx virtual host
To enable this, we will need to edit the file /etc/nginx/sites-enabled/pufferpanel.conf
, and we will use nano to edit it. To edit it, run the following command:
sudo nano /etc/nginx/sites-enabled/pufferpanel.conf
And now, you have to add the following:
Remember to change panel.examplehost.com
to your domain name!
server {
listen 80;
root /var/www/pufferpanel;
server_name panel.examplehost.com;
location ~ ^/\.well-known {
root /var/www/html;
allow all;
}
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Nginx-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
client_max_body_size 100M;
}
}
If you’re using PuTTY, you can right click on the terminal to paste it, and if you’re using just a terminal, you can press Ctrl + Shift + V
to paste it.
To save now, you have to press Ctrl + X
, and then Y
.
Now you’ll want to restart nginx, to do that, run the following command:
sudo systemctl restart nginx
We also need to open ports 80 and 443, so we can access the panel.
sudo ufw allow 80
sudo ufw allow 443
sudo ufw reload
Enabling SSL
To enable SSL, we will need to run the following command:
sudo certbot --nginx -d (yourdomain)
And that’s it! Now if you go into your browser, and try to go into https://(yourdomain), you should be able to access the panel!