*: added client-{client,key}-file parameters for supporting separate client and server certs when communicating between peers

In some environments, the CA is not able to sign certificates with both
'client auth' and 'server auth' extended usage parameters and so an operator
needs to be able to set a seperate client certificate to use when making
requests which is different to the certificate used for accepting requests.
This applies to both proxy and etcd member mode and is available as both a CLI
 flag and config file field for peer TLS.

Signed-off-by: Ben Meier <ben.meier@oracle.com>
This commit is contained in:
Ben Meier 2021-02-28 10:56:52 +00:00
parent d06d93d5b1
commit 3d44f5bf80
No known key found for this signature in database
GPG Key ID: 5F8F78FDB7FF701C
32 changed files with 556 additions and 374 deletions

View File

@ -64,8 +64,16 @@ func wrapTLS(scheme string, tlsinfo *TLSInfo, l net.Listener) (net.Listener, err
} }
type TLSInfo struct { type TLSInfo struct {
CertFile string // CertFile is the _server_ cert, it will also be used as a _client_ certificate if ClientCertFile is empty
KeyFile string CertFile string
// KeyFile is the key for the CertFile
KeyFile string
// ClientCertFile is a _client_ cert for initiating connections when ClientCertAuth is defined. If ClientCertAuth
// is true but this value is empty, the CertFile will be used instead.
ClientCertFile string
// ClientKeyFile is the key for the ClientCertFile
ClientKeyFile string
TrustedCAFile string TrustedCAFile string
ClientCertAuth bool ClientCertAuth bool
CRLFile string CRLFile string
@ -107,7 +115,7 @@ type TLSInfo struct {
} }
func (info TLSInfo) String() string { func (info TLSInfo) String() string {
return fmt.Sprintf("cert = %s, key = %s, trusted-ca = %s, client-cert-auth = %v, crl-file = %s", info.CertFile, info.KeyFile, info.TrustedCAFile, info.ClientCertAuth, info.CRLFile) return fmt.Sprintf("cert = %s, key = %s, client-cert=%s, client-key=%s, trusted-ca = %s, client-cert-auth = %v, crl-file = %s", info.CertFile, info.KeyFile, info.ClientCertFile, info.ClientKeyFile, info.TrustedCAFile, info.ClientCertAuth, info.CRLFile)
} }
func (info TLSInfo) Empty() bool { func (info TLSInfo) Empty() bool {
@ -142,6 +150,8 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
if errcert == nil && errkey == nil { if errcert == nil && errkey == nil {
info.CertFile = certPath info.CertFile = certPath
info.KeyFile = keyPath info.KeyFile = keyPath
info.ClientCertFile = certPath
info.ClientKeyFile = keyPath
info.selfCert = true info.selfCert = true
return return
} }
@ -278,6 +288,17 @@ func (info TLSInfo) baseConfig() (*tls.Config, error) {
return nil, err return nil, err
} }
// Perform prevalidation of client cert and key if either are provided. This makes sure we crash before accepting any connections.
if (info.ClientKeyFile == "") != (info.ClientCertFile == "") {
return nil, fmt.Errorf("ClientKeyFile and ClientCertFile must both be present or both absent: key: %v, cert: %v]", info.ClientKeyFile, info.ClientCertFile)
}
if info.ClientCertFile != "" {
_, err := tlsutil.NewCert(info.ClientCertFile, info.ClientKeyFile, info.parseFunc)
if err != nil {
return nil, err
}
}
cfg := &tls.Config{ cfg := &tls.Config{
MinVersion: tls.VersionTLS12, MinVersion: tls.VersionTLS12,
ServerName: info.ServerName, ServerName: info.ServerName,
@ -342,13 +363,17 @@ func (info TLSInfo) baseConfig() (*tls.Config, error) {
return cert, err return cert, err
} }
cfg.GetClientCertificate = func(unused *tls.CertificateRequestInfo) (cert *tls.Certificate, err error) { cfg.GetClientCertificate = func(unused *tls.CertificateRequestInfo) (cert *tls.Certificate, err error) {
cert, err = tlsutil.NewCert(info.CertFile, info.KeyFile, info.parseFunc) certfile, keyfile := info.CertFile, info.KeyFile
if info.ClientCertFile != "" {
certfile, keyfile = info.ClientCertFile, info.ClientKeyFile
}
cert, err = tlsutil.NewCert(certfile, keyfile, info.parseFunc)
if os.IsNotExist(err) { if os.IsNotExist(err) {
if info.Logger != nil { if info.Logger != nil {
info.Logger.Warn( info.Logger.Warn(
"failed to find client cert files", "failed to find client cert files",
zap.String("cert-file", info.CertFile), zap.String("cert-file", certfile),
zap.String("key-file", info.KeyFile), zap.String("key-file", keyfile),
zap.Error(err), zap.Error(err),
) )
} }
@ -356,8 +381,8 @@ func (info TLSInfo) baseConfig() (*tls.Config, error) {
if info.Logger != nil { if info.Logger != nil {
info.Logger.Warn( info.Logger.Warn(
"failed to create client certificate", "failed to create client certificate",
zap.String("cert-file", info.CertFile), zap.String("cert-file", certfile),
zap.String("key-file", info.KeyFile), zap.String("key-file", keyfile),
zap.Error(err), zap.Error(err),
) )
} }

View File

@ -368,11 +368,13 @@ type configJSON struct {
} }
type securityConfig struct { type securityConfig struct {
CertFile string `json:"cert-file"` CertFile string `json:"cert-file"`
KeyFile string `json:"key-file"` KeyFile string `json:"key-file"`
CertAuth bool `json:"client-cert-auth"` ClientCertFile string `json:"client-cert-file"`
TrustedCAFile string `json:"trusted-ca-file"` ClientKeyFile string `json:"client-key-file"`
AutoTLS bool `json:"auto-tls"` CertAuth bool `json:"client-cert-auth"`
TrustedCAFile string `json:"trusted-ca-file"`
AutoTLS bool `json:"auto-tls"`
} }
// NewConfig creates a new Config populated with default values. // NewConfig creates a new Config populated with default values.
@ -523,6 +525,8 @@ func (cfg *configYAML) configFromFile(path string) error {
copySecurityDetails := func(tls *transport.TLSInfo, ysc *securityConfig) { copySecurityDetails := func(tls *transport.TLSInfo, ysc *securityConfig) {
tls.CertFile = ysc.CertFile tls.CertFile = ysc.CertFile
tls.KeyFile = ysc.KeyFile tls.KeyFile = ysc.KeyFile
tls.ClientCertFile = ysc.ClientCertFile
tls.ClientKeyFile = ysc.ClientKeyFile
tls.ClientCertAuth = ysc.CertAuth tls.ClientCertAuth = ysc.CertAuth
tls.TrustedCAFile = ysc.TrustedCAFile tls.TrustedCAFile = ysc.TrustedCAFile
} }

View File

@ -202,6 +202,8 @@ func newConfig() *config {
// security // security
fs.StringVar(&cfg.ec.ClientTLSInfo.CertFile, "cert-file", "", "Path to the client server TLS cert file.") fs.StringVar(&cfg.ec.ClientTLSInfo.CertFile, "cert-file", "", "Path to the client server TLS cert file.")
fs.StringVar(&cfg.ec.ClientTLSInfo.KeyFile, "key-file", "", "Path to the client server TLS key file.") fs.StringVar(&cfg.ec.ClientTLSInfo.KeyFile, "key-file", "", "Path to the client server TLS key file.")
fs.StringVar(&cfg.ec.ClientTLSInfo.ClientCertFile, "client-cert-file", "", "Path to an explicit peer client TLS cert file otherwise cert file will be used when client auth is required.")
fs.StringVar(&cfg.ec.ClientTLSInfo.ClientKeyFile, "client-key-file", "", "Path to an explicit peer client TLS key file otherwise key file will be used when client auth is required.")
fs.BoolVar(&cfg.ec.ClientTLSInfo.ClientCertAuth, "client-cert-auth", false, "Enable client cert authentication.") fs.BoolVar(&cfg.ec.ClientTLSInfo.ClientCertAuth, "client-cert-auth", false, "Enable client cert authentication.")
fs.StringVar(&cfg.ec.ClientTLSInfo.CRLFile, "client-crl-file", "", "Path to the client certificate revocation list file.") fs.StringVar(&cfg.ec.ClientTLSInfo.CRLFile, "client-crl-file", "", "Path to the client certificate revocation list file.")
fs.StringVar(&cfg.ec.ClientTLSInfo.AllowedHostname, "client-cert-allowed-hostname", "", "Allowed TLS hostname for client cert authentication.") fs.StringVar(&cfg.ec.ClientTLSInfo.AllowedHostname, "client-cert-allowed-hostname", "", "Allowed TLS hostname for client cert authentication.")
@ -209,6 +211,8 @@ func newConfig() *config {
fs.BoolVar(&cfg.ec.ClientAutoTLS, "auto-tls", false, "Client TLS using generated certificates") fs.BoolVar(&cfg.ec.ClientAutoTLS, "auto-tls", false, "Client TLS using generated certificates")
fs.StringVar(&cfg.ec.PeerTLSInfo.CertFile, "peer-cert-file", "", "Path to the peer server TLS cert file.") fs.StringVar(&cfg.ec.PeerTLSInfo.CertFile, "peer-cert-file", "", "Path to the peer server TLS cert file.")
fs.StringVar(&cfg.ec.PeerTLSInfo.KeyFile, "peer-key-file", "", "Path to the peer server TLS key file.") fs.StringVar(&cfg.ec.PeerTLSInfo.KeyFile, "peer-key-file", "", "Path to the peer server TLS key file.")
fs.StringVar(&cfg.ec.PeerTLSInfo.ClientCertFile, "peer-client-cert-file", "", "Path to an explicit peer client TLS cert file otherwise peer cert file will be used when client auth is required.")
fs.StringVar(&cfg.ec.PeerTLSInfo.ClientKeyFile, "peer-client-key-file", "", "Path to an explicit peer client TLS key file otherwise peer key file will be used when client auth is required.")
fs.BoolVar(&cfg.ec.PeerTLSInfo.ClientCertAuth, "peer-client-cert-auth", false, "Enable peer client cert authentication.") fs.BoolVar(&cfg.ec.PeerTLSInfo.ClientCertAuth, "peer-client-cert-auth", false, "Enable peer client cert authentication.")
fs.StringVar(&cfg.ec.PeerTLSInfo.TrustedCAFile, "peer-trusted-ca-file", "", "Path to the peer server TLS trusted CA file.") fs.StringVar(&cfg.ec.PeerTLSInfo.TrustedCAFile, "peer-trusted-ca-file", "", "Path to the peer server TLS trusted CA file.")
fs.BoolVar(&cfg.ec.PeerAutoTLS, "peer-auto-tls", false, "Peer TLS using generated certificates") fs.BoolVar(&cfg.ec.PeerAutoTLS, "peer-auto-tls", false, "Peer TLS using generated certificates")

View File

@ -163,6 +163,8 @@ func TestEtcdPeerCNAuth(t *testing.T) {
args = []string{ args = []string{
"--peer-cert-file", certPath, "--peer-cert-file", certPath,
"--peer-key-file", privateKeyPath, "--peer-key-file", privateKeyPath,
"--peer-client-cert-file", certPath,
"--peer-client-key-file", privateKeyPath,
"--peer-trusted-ca-file", caPath, "--peer-trusted-ca-file", caPath,
"--peer-client-cert-auth", "--peer-client-cert-auth",
"--peer-cert-allowed-cn", "example.com", "--peer-cert-allowed-cn", "example.com",
@ -171,6 +173,8 @@ func TestEtcdPeerCNAuth(t *testing.T) {
args = []string{ args = []string{
"--peer-cert-file", certPath2, "--peer-cert-file", certPath2,
"--peer-key-file", privateKeyPath2, "--peer-key-file", privateKeyPath2,
"--peer-client-cert-file", certPath2,
"--peer-client-key-file", privateKeyPath2,
"--peer-trusted-ca-file", caPath, "--peer-trusted-ca-file", caPath,
"--peer-client-cert-auth", "--peer-client-cert-auth",
"--peer-cert-allowed-cn", "example2.com", "--peer-cert-allowed-cn", "example2.com",

30
tests/fixtures/ca.crt vendored
View File

@ -1,22 +1,22 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE----- -----END CERTIFICATE-----

24
tests/fixtures/client-clientusage.crt vendored Normal file
View File

@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIECDCCAvCgAwIBAgIULbzkAv8zbkJzZIRDPnBwXl0/BH0wDQYJKoZIhvcNAQEL
BQAwbzEMMAoGA1UEBhMDVVNBMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQKEwRldGNkMRYwFAYDVQQLEw1ldGNkIFNl
Y3VyaXR5MQswCQYDVQQDEwJjYTAeFw0yMTAyMjgxMDQ4MDBaFw0zMTAyMjYxMDQ4
MDBaMHgxDDAKBgNVBAYTA1VTQTETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzENMAsGA1UEChMEZXRjZDEWMBQGA1UECxMNZXRjZCBT
ZWN1cml0eTEUMBIGA1UEAxMLZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQDWBNo9tYRoQKv76xabz0EPXGJKHIrUjf0NbXz3d9jbP2sH
3hutXr/A221pULfZYIZdaUtmEuEr1905nYwJ2gnO9Y/iSc6fQ/4EjoT+VZLdINQw
I1dG2rtv2ZuYL5oYfgCjLkV1LzYuyfY/zJ93WoJW0YA0t50MEQNGEqD7pYlhsPej
iGyjagSi7zsoAkAagNprULH6RyAqDG7db+MfJOUzHUv4PWGBXPb0PHY3xA+WayFB
nP5AZO16oDh/UnzvfEAJULXeIOLs4eOmtzKMwZwrWzgCB+jBeVlc1FOwXQcmBamN
eYUs75GoO9aSSLROvnQiw2P0z0xVNmDokDXGsSRxAgMBAAGjgZIwgY8wDgYDVR0P
AQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYD
VR0OBBYEFCB4ysDF81d6lkKIvebj08BcRWNoMB8GA1UdIwQYMBaAFCkmK/Tt2Rj1
YHTOAHrA5v8cyLygMBoGA1UdEQQTMBGCCWxvY2FsaG9zdIcEfwAAATANBgkqhkiG
9w0BAQsFAAOCAQEAo2B+piCBTjdpCLFj/kc+A0alZTbNdr0+BTsN+5aBE9k4JlZS
smkIQL0vyzjKw/W/o2EyPVcVKJX52/GQsC3bQrBb2lH1jRYgt5pRo24kKHy4Nlc3
IaYg++ssfT2ZdpYiL3lzLyOHEumcynz3nI5M81e5CCIdEennxaM8FuiYN5OXDOR3
j+bCYHLYPaWYZopfiSrnq+Z4gRUS2sMI1yqtiPSUdIJLnTfyEEdexvs/KUtFWvFO
4AcecKvT6HA8oNDiWfE6e854uDLTkbXW1rK+FWPU9pv5NR50+GBCvxvmDGtGXxQu
yu+kOsx2gfgNc4idIv1pjZF/1YzrrKGAhChN2A==
-----END CERTIFICATE-----

View File

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA1gTaPbWEaECr++sWm89BD1xiShyK1I39DW1893fY2z9rB94b
rV6/wNttaVC32WCGXWlLZhLhK9fdOZ2MCdoJzvWP4knOn0P+BI6E/lWS3SDUMCNX
Rtq7b9mbmC+aGH4Aoy5FdS82Lsn2P8yfd1qCVtGANLedDBEDRhKg+6WJYbD3o4hs
o2oEou87KAJAGoDaa1Cx+kcgKgxu3W/jHyTlMx1L+D1hgVz29Dx2N8QPlmshQZz+
QGTteqA4f1J873xACVC13iDi7OHjprcyjMGcK1s4AgfowXlZXNRTsF0HJgWpjXmF
LO+RqDvWkki0Tr50IsNj9M9MVTZg6JA1xrEkcQIDAQABAoIBAAGBZTub5EOLeOo7
vBv6eD2wa6yTyNI38Xi/tWpUOH1KU+lpQY6VpQmpQXrFK5Xm3OsZS4N7TIQvb4nx
NsP2+aywA4QW+tIZ+1Zy3jKfzXmqunNgPEPuU/U0dai7ZP0ZHc4IDEsHuvzXRNks
Ck8fnt0XeixkwkEMeZZrmSBMCMxcHAWxiv+oXF+olN3vTD2aDC8T6YwahMyQUQfW
IA9fuO8Dzzmk2I7mDHa29cbB+PW4E5tkJmHVZqEu8jPgMjCJGc2IR1YpLAXF8YBB
vgh6ZgI6JOg1OiNETuQekamAMOblFVOdPUjPSxuyJzEE8VpIdD3Z9UMNq+FDQh/F
j1lEEEECgYEA9nYwUh+e0H9c9IRBLNYAbq2PV4SpFKvFrHOTQpylMPisUTgdHKLT
CvO1wbNprElBAulOWobCyKshWGd5ECFsCvsWS6xmGi442q3ov5xtAMmvSmtW8s+8
tUeVRQGS/Yn5Uxj2msUPe6vJEniLgsxmbFbDYqvr65COrAsCDEY3DkkCgYEA3k09
EGhiO1joDtJPI21vUzzecBuep32oKiwip3OgS/mct04/QR+6lp1x4sPMYlyxbyk9
jPdkzU07d8r+mES9RweE5lc1aCaF5eA8y6qtL9vBgsXRiEXlpYLxb0TOQaYNU0qM
aYumYPWjsjwYDvRKaVzThFUkYwapKFqtMV98BOkCgYAkIOkucLIwMCtpMKX5M5m2
n7yegLTkcdW1VO/mWN4iUqG3+jjSRNAZD+a58VnxRn/ANIEm5hBRqDxoICrwAWY8
Kdh32VrSRapR7CJtTDnyXp5Sk2+YgnlQPaEVD4kDn6Er3EHyKCb/4wvDqGYTE3GE
OifEJB2eV3+Cms5/DB/v+QKBgFzV8r9saEGSkm7GI2iPJiOj0t0Mm8gksNrTzbES
l4nC91CR69adkoWdwNbLoAof3bWnil3ZXw5hx4jyjDo40rbcDANJvjL9i4OBjsIb
R/Ipmvmq9SMs1Ye2VG98U4qU9xGmm1bkjBoH21HuyLlOCdlQe8DS8bwtJu2EWLm6
v4cpAoGAP3pqi6iIZAbJVqw6p5Xd/BLzn3iS+lwQjwF/IWp5UnFCGovnVSJG2wqP
kxL9jy4asMDDuMKzEzO3+UT6WBRI+idV8PgDNEYkXcnVAA5lZ+2kCJwRICsC6MYH
1nIHJtPngUrwT3TUhMp/WfpYUjTdiOC3aJmKq/NGZxE8/Sb3G6U=
-----END RSA PRIVATE KEY-----

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
Lo+BNaBpRERregCuiuuVnw== SYrHgrQ7TRd29DybB6cPAQ==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -8,6 +8,24 @@
"client auth" "client auth"
], ],
"expiry": "87600h" "expiry": "87600h"
},
"profiles": {
"client-only": {
"usages": [
"signing",
"key encipherment",
"client auth"
],
"expiry": "87600h"
},
"server-only": {
"usages": [
"signing",
"key encipherment",
"server auth"
],
"expiry": "87600h"
}
} }
} }
} }

View File

@ -31,9 +31,15 @@ function gencert {
mv $2-key.pem $2.key.insecure mv $2-key.pem $2.key.insecure
} }
# generate DNS: localhost, IP: 127.0.0.1, CN: example.com certificates # generate DNS: localhost, IP: 127.0.0.1, CN: example.com certificates, with dual usage
gencert ./server-ca-csr.json server gencert ./server-ca-csr.json server
#generates certificate that only has the 'server auth' usage
gencert "--profile=server-only ./server-ca-csr.json" server-serverusage
#generates certificate that only has the 'client auth' usage
gencert "--profile=client-only ./server-ca-csr.json" client-clientusage
#generates certificate that does not contain CN, to be used for proxy -> server connections. #generates certificate that does not contain CN, to be used for proxy -> server connections.
gencert ./client-ca-csr-nocn.json client-nocn gencert ./client-ca-csr-nocn.json client-nocn

Binary file not shown.

View File

@ -1,20 +1,20 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
HpTFDAqspwdlWu6GDwE3uc5sdSX84kzU2e/E BoqpmQdpQ/yINKesAD/r5dF2SmUEhZhn6GSK
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,5 +1,5 @@
-----BEGIN EC PRIVATE KEY----- -----BEGIN EC PRIVATE KEY-----
MHcCAQEEIM4bArwMGk+ocE/MPTlkzHvqYruDZcIwGRgG9oTbmrzeoAoGCCqGSM49 MHcCAQEEIEmvbcwNyqDHWXBG2IHZffLme5Ti8oHYzaapBvwkRSWWoAoGCCqGSM49
AwEHoUQDQgAEBeO/2Oln3ZmHL8GbTMjLrXcTMELBCk5HdBhFnHQ9Xu5zgEcz69xL AwEHoUQDQgAERIQpJcG78xaMzT5K92OTxq0K9coHy+UPl4bzzk0xIxDf88I8PS9E
JPmNlNAbA1mhOy5kVHxF/Oy7oHQI7jKvDA== Go34RPDHfPahA9I/MRwCnkEa7pYL/xVl1w==
-----END EC PRIVATE KEY----- -----END EC PRIVATE KEY-----

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
lRCnby+d4FJYUAp1vKrD8mub1sbMfmf88f7d w/e+aG74m1tAID1XjTuCZIcTZTEHZi31ogVM
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

24
tests/fixtures/server-serverusage.crt vendored Normal file
View File

@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIECDCCAvCgAwIBAgIUDVfELNb4NV52PJjENU2DNOIFx6IwDQYJKoZIhvcNAQEL
BQAwbzEMMAoGA1UEBhMDVVNBMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQKEwRldGNkMRYwFAYDVQQLEw1ldGNkIFNl
Y3VyaXR5MQswCQYDVQQDEwJjYTAeFw0yMTAyMjgxMDQ4MDBaFw0zMTAyMjYxMDQ4
MDBaMHgxDDAKBgNVBAYTA1VTQTETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzENMAsGA1UEChMEZXRjZDEWMBQGA1UECxMNZXRjZCBT
ZWN1cml0eTEUMBIGA1UEAxMLZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQDvx5mE6ZwV61si7QK18X+K6lJSWr8rE+0l4YbvbLh/bCdP
bnPzTsiK+FN4FA9fur73L/RvQDxO9XG99pKIhKPGxiit6DSJ9rL24RpK7tJpgnnK
Kdry6E+6/ZvVXBP3LtdJyX3kpdw+TSivlwi50CeEQA5argOXnyDNGIOWC8iMpeg7
z3pE0DfpDEgLMjGE/I/9YHRCOiK/8kQchXqVfWHpALFakf9+QPNpNrEIPjV7IPja
GEUeDG9MI0PYbBl45NkKIi0nelV/Nay9kyPSPKfvngJU2dTqsGSVXW+DlZo7OJBh
RLEih+CWGfotGzFzXWdQRvD/VleaxYYUDKkyHVx1AgMBAAGjgZIwgY8wDgYDVR0P
AQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYD
VR0OBBYEFKdzgCE8K0tYt9LaF5N2aQrrHru0MB8GA1UdIwQYMBaAFCkmK/Tt2Rj1
YHTOAHrA5v8cyLygMBoGA1UdEQQTMBGCCWxvY2FsaG9zdIcEfwAAATANBgkqhkiG
9w0BAQsFAAOCAQEAYcD+1ebiJna7dfydgw/yox+b6/KO16evaU4c5Spu5O+VtcZG
rKMi8MT8V0U7kL9Xo9TszbzwpPWr1It0wcmM1cZrwykkT/baVJADaLtfSFUtlCDX
HNB04C2UUBPPosFr1d5YtwyN55qxgyMg+IDeMubYZ4qwDWCYBTIiz9yHoQ6LuuV8
Tkkpa6X5n4+fO2iUgA6SZUkwZGdbQLOz9VMa1qgyOz3ejuDeMc4sa08iADs4wG/X
ohRGg0Df5THeXhR+Pn0HBf3T0eTAeZzLL5xtlIn9o6o9CEU573uEYQI1BG1kcDeQ
Rs9J/2iuLqr8GAjr7k5aUW3FFYRtqC3YR0G5Eg==
-----END CERTIFICATE-----

View File

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA78eZhOmcFetbIu0CtfF/iupSUlq/KxPtJeGG72y4f2wnT25z
807IivhTeBQPX7q+9y/0b0A8TvVxvfaSiISjxsYoreg0ifay9uEaSu7SaYJ5yina
8uhPuv2b1VwT9y7XScl95KXcPk0or5cIudAnhEAOWq4Dl58gzRiDlgvIjKXoO896
RNA36QxICzIxhPyP/WB0Qjoiv/JEHIV6lX1h6QCxWpH/fkDzaTaxCD41eyD42hhF
HgxvTCND2GwZeOTZCiItJ3pVfzWsvZMj0jyn754CVNnU6rBklV1vg5WaOziQYUSx
Iofglhn6LRsxc11nUEbw/1ZXmsWGFAypMh1cdQIDAQABAoIBAQCnpgkisyuc78fy
7YAdslKY0Cjqx+QtvGrtN3he4sdE4FvD39hWX9k7wVCq/muZZTqsHe1r85+3HUl/
pmzh4suX6Wj73wUNCV4r20vE5KJdfwqkXQtnFyLX/QX98blL9IY2YxkQyx7ouI4f
5xwEvxNCFn9yy4RbeLk4bVFjka2RF/x6qEUCHq5Q74vWvyC1i3kGKgYruM39RQw3
D5fG8xdUexBc32nfzynP+0NcFAiy+yUQWOLcE4i8XaegFvg+QvWOx1iwjqU3FDeC
JzKrtw9SLBWf7AGraxA59K4WJ63xqGqFugWcFaYh923X8zES/s0wrtV2T14Lgj3Q
aWJ0DfQBAoGBAPNd1Aph0Z9PwZ1zivJprj8XDnFP2XIqlODYuiVddjbvIV13d6F/
PE/ViW0MVduF0ejkPs9+hSxYOH58EWIt44Li/Nre1U42ny+fJrY1P5Mq5nriM4L4
lx2YFaWzAoxzpMbbQ14kEMcQSicziDbBx62aaQYu4UwrvqXYdSYp+D+BAoGBAPw6
Gtv6hytg19GtH6sQG9/4K4cLGX4lJE3pTL3eUicfoEI+hviZdG8FS77Uv05ga6fQ
OlyqvpmmXp6fgTrSlHBeKO75A3sT7fP1v1foq1y+CdMGytOnJENUc80bN0L1dFI1
zwYm7eLDP0KdUYpf+Rpgcap4StQbotpc6oy705b1AoGBAO9z26VXd+ybifKE9Cru
Zp727aP6IAaf9RqCxCztl9oXUanoWVISoeIfRfeA0p2LPu06Xr7ESv5F01hIdMY4
RonLE2W7KP+q6NfvbSSMogAIjvxLwslUFUPuFyaRSqmtQ2zR4qgnLkbfNUb7AkR2
SCT9L+cAi3bp98ywfRvO4c6BAoGANkAJJudry1i5EtA5z4FXfYTTV+h7QzaZ6GgV
qYD4CpIy1gy82xumf3qUICeCPkle3mlbJDNVa5btIxELqqtAYiregwfsR7yxoZdp
4G6a7Qey9UCwv3Vjx1eS0LrZ1/0TV9ta++fDotJ7+Mf9kdWyromv6QqWjaikDnON
v1dm20ECgYEA6i+uvBuomUzqJYjUTNgMtmfYjuXv8D58wLkY10si7T2ayAlFKBG2
Dno/dojOcixO1dtaq7dA+KNXtESekjT1Y4VleGHWpEglRScE629iow4ASrluP/Ec
F2DvTRW4daFDWQV4je1u0+wDj5B8KZjO/e759BztiRyRqTCzpxTa8Ms=
-----END RSA PRIVATE KEY-----

View File

@ -1,25 +1,25 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
HuPp9ldqccDv7732zSK19g== S8e6/xuD4RxpUMOcMBuGSg==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
F39nwIe3Mo9dDdxlnKv7IQ== gxtYmjZz+g7NIVBSMyqSQg==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -87,6 +87,15 @@ var (
ClientCertAuth: true, ClientCertAuth: true,
} }
testTLSInfoWithSpecificUsage = transport.TLSInfo{
KeyFile: "../fixtures/server-serverusage.key.insecure",
CertFile: "../fixtures/server-serverusage.crt",
ClientKeyFile: "../fixtures/client-clientusage.key.insecure",
ClientCertFile: "../fixtures/client-clientusage.crt",
TrustedCAFile: "../fixtures/ca.crt",
ClientCertAuth: true,
}
testTLSInfoIP = transport.TLSInfo{ testTLSInfoIP = transport.TLSInfo{
KeyFile: "../fixtures/server-ip.key.insecure", KeyFile: "../fixtures/server-ip.key.insecure",
CertFile: "../fixtures/server-ip.crt", CertFile: "../fixtures/server-ip.crt",

View File

@ -59,6 +59,16 @@ func TestTLSClusterOf3(t *testing.T) {
clusterMustProgress(t, c.Members) clusterMustProgress(t, c.Members)
} }
// Test that a cluster can progress when using separate client and server certs when peering. This supports certificate
// authorities that don't issue dual-usage certificates.
func TestTLSClusterOf3WithSpecificUsage(t *testing.T) {
defer testutil.AfterTest(t)
c := NewClusterByConfig(t, &ClusterConfig{Size: 3, PeerTLS: &testTLSInfoWithSpecificUsage})
c.Launch(t)
defer c.Terminate(t)
clusterMustProgress(t, c.Members)
}
func TestClusterOf1UsingDiscovery(t *testing.T) { testClusterUsingDiscovery(t, 1) } func TestClusterOf1UsingDiscovery(t *testing.T) { testClusterUsingDiscovery(t, 1) }
func TestClusterOf3UsingDiscovery(t *testing.T) { testClusterUsingDiscovery(t, 3) } func TestClusterOf3UsingDiscovery(t *testing.T) { testClusterUsingDiscovery(t, 3) }