Step #1.
Go to pihole's web interface and go to 'local DNS records' section. Enter the hostname desired for the pihole web interface. In the IP field, use the Nginx Proxy Manager's service IP.
Step #2.
SSH into pihole and run command:
sudo nano /etc/lighttpd/conf-enabled/15-pihole-custom-admin-redirect.conf
then copy and paste the code below, but be sure to change my.custom.domain to the same domain used in step #1 above:
$HTTP["url"] == "/" { $HTTP["host"] == "my.custom.domain" { url.redirect = ("" => "/admin/") } }
Then press CTRL+O to save the file. It will ask you to confirm the file name, just hit enter. Then press CTRL+X to close the conf file.
Next, we run the command sudo service lighttpd restart
for the conf file we created to run.
Step #3.
In Nginx Proxy Manager, create a new reverse proxy host. In the domain names field, enter the same domain used in step 1. Then in the IP field, enter the IP address of the device the pihole is installed on. For port # use port 80 which is the default port for lighttpd server. Be sure to also apply your letsencrypt SSL cert in this same tab.
That's it. Now you should be able to visit your pihole web interface with your FQDN using HTTPS.