Skip to content

Instantly share code, notes, and snippets.

@daemonhorn
Created June 21, 2023 12:13
Show Gist options
  • Save daemonhorn/cf2b37404ebe58c8054f9a125cf6fa85 to your computer and use it in GitHub Desktop.
Save daemonhorn/cf2b37404ebe58c8054f9a125cf6fa85 to your computer and use it in GitHub Desktop.
Unifi Network Controller and NGNIX Configuration

Create specific folder for certs

mkdir /etc/nginx/certs
chown root:www-data /etc/nginx/certs

Add www-data group to sudoers for service (service restart nginx)

echo "%www-data ALL=(ALL:ALL) NOPASSWD:/usr/sbin/service" >/etc/sudoers.d/20_nginx

Shell snippet to let acme service push certificates to nginx

HOST=unifi
dest_name=dhorn
dest_folder="/etc/nginx/certs/"
dest_basename="unifi"
date 1>&2
scp /conf/acme/${HOST}.key ${dest_name}@${HOST}:${dest_folder}${dest_basename}.key 1>&2
scp /conf/acme/${HOST}.fullchain ${dest_name}@${HOST}:${dest_folder}${dest_basename}.crt 1>&2
ssh ${dest_name}@${HOST} "sudo /usr/sbin/service nginx restart && echo Completed" 1>&2

Snippet of /etc/nginx/nginx.conf

server {
                listen 443 ssl;
                listen [::]:443 ssl;

                server_name unifi.mydomain.com;
                ssl_certificate     /etc/nginx/certs/unifi.crt;
                ssl_certificate_key /etc/nginx/certs/unifi.key;

                location /wss {
                        proxy_pass https://localhost:8443;
                        proxy_http_version 1.1;
                        proxy_buffering off;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "Upgrade";
                        proxy_read_timeout 86400;
                        proxy_set_header Host $host;
                }

                location / {
                        proxy_pass https://localhost:8443;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
                }
        }
        
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment