Skip to content
This repository was archived by the owner on Feb 8, 2023. It is now read-only.
This repository was archived by the owner on Feb 8, 2023. It is now read-only.

Dynamic DNS and Let's Encrypt certificates for secure websockets #252

@JustinDrake

Description

@JustinDrake

A browser js-libp2p node A communicating with a go-libp2p node B over secure websockets wss:// requires B to have a valid SSL certificate. This means libp2p web apps are either restricted to http:// (sucks), or need to use a wss:// proxy server for SSL termination (better, but still sucks).

The Nimiq whitepaper has a good idea to address this issue:

Powerful browser APIs are restricted to secure origins. So for browsers to connect, Backbone Nodes need to provide an encrypted connection via SSL. This requires a domain and an SSL certificate. For easy and cheap access to domains, we will provide dynamic DNS and Letsencrypt packaged in an installer.

go-libp2p nodes could programatically get an SSL certificate for themselves. I am imagining a service (e.g. maintained by ProtocolLabs) where subdomains of libp2p.io or ipfs.io could be registered given a request signed by a peer ID.

For example, the owner of the QmZXGKrRRe5RTDhvzhZfSTe8vYBDGV7HBoNz5FS3U9FnUa peer ID would be able create an A record mapping QmZXGKrRRe5RTDhvzhZfSTe8vYBDGV7HBoNz5FS3U9FnUa.libp2p.io to its IP address, and then get a Let's Encrypt certificate for itself.

Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions