Great write-up, thanks for sharing this!<p>One thing I would add: a self-signed certificate is not adequate for password transmission. In some ways, it's even worse than transmitting over clear-text http because it provides an illusion of security.<p>Any actor on your network can man-in-the-middle, provide their own certificate, and you'd be none the wiser.<p>I'd suggest provisioning LetsEncrypt leaf-node certificate on a node that can respond to HTTP-01 or DNS-01 challenges (don't open your home network to :80 :443 - use a VM in the Cloud to respond to challenges), then transfer the certificate to the Raspberry Pi.
<a href="https://letsencrypt.org/docs/challenge-types/" rel="nofollow">https://letsencrypt.org/docs/challenge-types/</a>