dcrd/internal/rpcserver
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
..
testdata rpcserver: Add handleSearchRawTransactions tests. 2020-08-29 22:03:04 -05:00
doc.go rpcserver: Move to internal. 2020-07-24 23:29:59 -05:00
interface.go rpcserver: Remove unused LocateBlocks iface method. 2021-01-07 11:09:48 -06:00
log.go rpcserver: Add logging to internal package. 2019-10-24 21:37:27 -05:00
README.md rpcserver: Move to internal. 2020-07-24 23:29:59 -05:00
rpcserver_test.go rpcserver: Move to internal. 2020-07-24 23:29:59 -05:00
rpcserver.go rpcserver: Allow TLS client cert authentication 2021-01-07 13:58:38 -06:00
rpcserverhandlers_test.go rpcserver: Remove unused LocateBlocks iface method. 2021-01-07 11:09:48 -06:00
rpcserverhelp_test.go rpcserver: Move to internal. 2020-07-24 23:29:59 -05:00
rpcserverhelp.go rpcserver: Remove v1 getcfilter{,header}. 2021-01-02 12:38:32 -06:00
rpcwebsocket.go rpcserver/netsync: Remove notifystakedifficulty. 2020-12-28 18:26:54 -06:00
treasury_test.go rpcserver: Add tree param to gettxout. 2020-12-23 23:23:09 -06:00

rpcserver

Build Status ISC License Doc

Overview

Package rpcserver includes all RPC server interfaces, types, and pieces of code pertaining to implementing the RPC server.

License

Package rpcserver is licensed under the copyfree ISC License.