greggman / HappyFunTimes

A System for creating 10-100+ player local games
http://greggman.github.io/HappyFunTimes
BSD 3-Clause "New" or "Revised" License
381 stars 55 forks source link

What to do about HTTPS #20

Open greggman opened 8 years ago

greggman commented 8 years ago

In order for the browser to go fullscreen (currently Android only), access the mic (also Android only), use the camera for real time input (Android only), and even read the gyroscrope pages are required to be served as HTTPS

Unfortunately that's rather complicated. To use HTTPS requires Certificates. Certificates require domain names.

Lots of people have suggested solutions but they all seem to fail in some way

A solution needs to have zero user interaction IMO. Run the game, it just works. No login, no registration, no configuration

The solution I think would work is to run a free DNS server for happyfuntimes and get it listed on the Public Suffix List (or talk to letsencrypt for a special exemption).

The free DNS server would have an API that lets games generate a DNS server like this

<sha256ofgamename+internalip+externalip>.dyndns.happyfuntimes.net

That domain is would point to internal IP address of the game and the DNS server would have an API to support validating letsencrypt using TXT records.

The game (happyfuntimes library) would then have to contact happyfuntimes.net, ask for a domain name, it could then use that name to get a cert from letsencrypt. It would store that locally and if it's close to expiring try to get a new cert.

Some issues

Anyway, other ideas welcome - though please explain how it will require zero end-user interaction to both the person running the game and the people playing the game.