etcd/pkg/transport
Piotr Tabor 2d0ce9de3d etcdmain: grpc-proxy should only require CN-less certificates for --cert flags.
We have following communication schema:
client --- 1 ---> grpc-proxy --- 2 --- > etcd-server

There are 2 sets of flags/certs in grpc proxy [ https://github.com/etcd-io/etcd/blob/master/etcdmain/grpc_proxy.go#L140 ]:
 A. (cert-file, key-file, trusted-ca-file, auto-tls) this are controlling [1] so client to proxy connection and in particular they are describing proxy public identity.
 B. (cert,key, cacert ) - these are controlling [2] so what's the identity that proxy uses to make connections to the etcd-server.

If 2 (B.) contains certificate with CN and etcd-server is running with --client-cert-auth=true, the CN can be used as identity of 'client' from service perspective. This is permission escalation, that we should forbid.

If 1 (A.) contains certificate with CN - it should be considered perfectly valid. The server can (should) have full identity.

So only --cert flag (and not --cert-file flag) should be validated for empty CN.
2020-09-07 11:59:28 +02:00
..
doc.go pkg: update LICENSE header 2016-05-12 20:48:53 -07:00
keepalive_listener.go *: fix naked returns 2017-11-10 18:46:15 -08:00
keepalive_listener_test.go transport: use actual certs for listener tests 2017-04-12 13:41:33 -07:00
limit_listen.go pkg: update LICENSE header 2016-05-12 20:48:53 -07:00
listener.go etcdmain: grpc-proxy should only require CN-less certificates for --cert flags. 2020-09-07 11:59:28 +02:00
listener_test.go transport: simple fix in test functions to prevent goroutine leak 2020-02-12 18:32:03 -05:00
listener_tls.go pkg: Remove stray printfs 2019-07-10 13:33:14 +09:00
timeout_conn.go pkg: update LICENSE header 2016-05-12 20:48:53 -07:00
timeout_dialer.go pkg: update LICENSE header 2016-05-12 20:48:53 -07:00
timeout_dialer_test.go transport: simple fix in test functions to prevent goroutine leak 2020-02-12 18:32:03 -05:00
timeout_listener.go pkg/transport: remove unused parameter from "wrapTLS" 2018-05-09 15:42:45 -07:00
timeout_listener_test.go transport: simple fix in test functions to prevent goroutine leak 2020-02-12 18:32:03 -05:00
timeout_transport.go pkg/transport: fix minor typo 2016-08-04 16:00:18 -07:00
timeout_transport_test.go pkg: update LICENSE header 2016-05-12 20:48:53 -07:00
tls.go transport: add ServerName to TLSConfig and add ValidateSecureEndpoints 2016-08-03 22:28:03 -07:00
transport.go pkg/transport: update scheme to unix copying URL 2016-08-03 10:35:28 -07:00
transport_test.go test: test update for Go 1.12.5 and related changes 2019-06-05 17:02:05 -04:00
unix_listener.go *: fix a bug in handling unix socket urls 2017-04-05 14:33:13 +08:00