dcrd/internal
Josh Rickmar a0d26a7ba7 rpcserver: Allow TLS client cert authentication
This adds an alternative method for TLS clients to authenticate to the
server by presenting a client certificate in the TLS handshake.  In
order for dcrd to trust this client, the certificate authority must be
added as a trusted root (by default, in clients.pem in dcrd's
application data directory) as well as setting the config value
authtype=clientcerts.  HTTP POST and websocket clients need not
provide HTTP Basic authentication when client certificates are used.

In future changes, TLS client authentication may be used to limit
access to particular RPCs by various clients, which is possible now
that each client can present their own cryptographic identity.
However, at the moment, enabling TLS client authentication requires it
at the TLS listener level, and therefore breaks the
--rpclimituser/rpclimitpass mechanism to provide non-admin client
authentication.  Additional changes will be required to provide the
client identity through the request context in order to bring back
limited access for clients.  Users depending on the limited user
settings should avoid using client certificates in the meantime.
2021-01-07 13:58:38 -06:00
..
fees fees: Remove deprecated DisableLog. 2020-12-28 13:13:47 -06:00
limits multi: replace godoc.org with pkg.go.dev 2020-02-18 19:35:19 -06:00
mempool multi: update error code related documentation. 2020-12-21 13:00:59 -06:00
mining mining: Remove duplicate method. 2020-12-28 18:38:00 -06:00
netsync netsync: Remove unneeded TipGeneration. 2021-01-07 11:04:00 -06:00
progresslog progresslog: Add package documentation. 2020-12-14 19:20:07 -06:00
rpcserver rpcserver: Allow TLS client cert authentication 2021-01-07 13:58:38 -06:00
version release: Bump for 1.7 release cycle. 2020-10-15 16:30:33 -05:00