*: 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>
release-3.5
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 {
CertFile string
KeyFile string
// CertFile is the _server_ cert, it will also be used as a _client_ certificate if ClientCertFile is empty
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
ClientCertAuth bool
CRLFile string
@ -107,7 +115,7 @@ type TLSInfo struct {
}
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 {
@ -142,6 +150,8 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
if errcert == nil && errkey == nil {
info.CertFile = certPath
info.KeyFile = keyPath
info.ClientCertFile = certPath
info.ClientKeyFile = keyPath
info.selfCert = true
return
}
@ -278,6 +288,17 @@ func (info TLSInfo) baseConfig() (*tls.Config, error) {
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{
MinVersion: tls.VersionTLS12,
ServerName: info.ServerName,
@ -342,13 +363,17 @@ func (info TLSInfo) baseConfig() (*tls.Config, error) {
return cert, err
}
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 info.Logger != nil {
info.Logger.Warn(
"failed to find client cert files",
zap.String("cert-file", info.CertFile),
zap.String("key-file", info.KeyFile),
zap.String("cert-file", certfile),
zap.String("key-file", keyfile),
zap.Error(err),
)
}
@ -356,8 +381,8 @@ func (info TLSInfo) baseConfig() (*tls.Config, error) {
if info.Logger != nil {
info.Logger.Warn(
"failed to create client certificate",
zap.String("cert-file", info.CertFile),
zap.String("key-file", info.KeyFile),
zap.String("cert-file", certfile),
zap.String("key-file", keyfile),
zap.Error(err),
)
}

View File

@ -368,11 +368,13 @@ type configJSON struct {
}
type securityConfig struct {
CertFile string `json:"cert-file"`
KeyFile string `json:"key-file"`
CertAuth bool `json:"client-cert-auth"`
TrustedCAFile string `json:"trusted-ca-file"`
AutoTLS bool `json:"auto-tls"`
CertFile string `json:"cert-file"`
KeyFile string `json:"key-file"`
ClientCertFile string `json:"client-cert-file"`
ClientKeyFile string `json:"client-key-file"`
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.
@ -523,6 +525,8 @@ func (cfg *configYAML) configFromFile(path string) error {
copySecurityDetails := func(tls *transport.TLSInfo, ysc *securityConfig) {
tls.CertFile = ysc.CertFile
tls.KeyFile = ysc.KeyFile
tls.ClientCertFile = ysc.ClientCertFile
tls.ClientKeyFile = ysc.ClientKeyFile
tls.ClientCertAuth = ysc.CertAuth
tls.TrustedCAFile = ysc.TrustedCAFile
}

View File

@ -202,6 +202,8 @@ func newConfig() *config {
// security
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.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.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.")
@ -209,6 +211,8 @@ func newConfig() *config {
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.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.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")

View File

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

30
tests/fixtures/ca.crt vendored
View File

@ -1,22 +1,22 @@
-----BEGIN CERTIFICATE-----
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
-----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-----
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
Lo+BNaBpRERregCuiuuVnw==
VBjy5UtSe/f66d7dKgZVVfKDiOeSb1knATSy7/JyubxVgq64yTN6fqIYRQg4gyVW
IPf8W4BbhEXeA7VumVuTTKjILoufGecjrjA1Skb4lWGfV21A51Fs9TcMLPiQYZ1b
e2J2Trtd0CsteQj4BDrbgiSxahJBaj+4PfXM1tef51DJs+gEg16DGxdzFBtlY+ih
SwOX6YcUyxYzYX2szafPpVRuQqU0B63FkvBbsNMX1KamtAsLtvf/JxYpPY9eg5t/
b5L6pXQkp6bK3q8Gv1WApjD8tcwqBkcJrbjgJ6gfW9h3zEbLmxkAv46sJodVLInL
SYrHgrQ7TRd29DybB6cPAQ==
-----END CERTIFICATE-----

View File

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

View File

@ -8,6 +8,24 @@
"client auth"
],
"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
}
# 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
#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.
gencert ./client-ca-csr-nocn.json client-nocn

Binary file not shown.

View File

@ -1,20 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIDRzCCAi+gAwIBAgIUB3isF3kQsriRjeCMKua3xOUB77IwDQYJKoZIhvcNAQEL
MIIDRzCCAi+gAwIBAgIUVE0fLzH6W4M2gJVJhmQdkQdKpO0wDQYJKoZIhvcNAQEL
BQAwbzEMMAoGA1UEBhMDVVNBMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQKEwRldGNkMRYwFAYDVQQLEw1ldGNkIFNl
Y3VyaXR5MQswCQYDVQQDEwJjYTAeFw0yMDA5MDcwOTQzMDBaFw0zMDA5MDUwOTQz
Y3VyaXR5MQswCQYDVQQDEwJjYTAeFw0yMTAyMjgxMDQ4MDBaFw0zMTAyMjYxMDQ4
MDBaMHgxDDAKBgNVBAYTA1VTQTETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzENMAsGA1UEChMEZXRjZDEWMBQGA1UECxMNZXRjZCBT
ZWN1cml0eTEUMBIGA1UEAxMLZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjO
PQMBBwNCAAQF47/Y6WfdmYcvwZtMyMutdxMwQsEKTkd0GEWcdD1e7nOARzPr3Esk
+Y2U0BsDWaE7LmRUfEX87LugdAjuMq8Mo4GcMIGZMA4GA1UdDwEB/wQEAwIFoDAd
PQMBBwNCAAREhCklwbvzFozNPkr3Y5PGrQr1ygfL5Q+XhvPOTTEjEN/zwjw9L0Qa
jfhE8Md89qED0j8xHAKeQRrulgv/FWXXo4GcMIGZMA4GA1UdDwEB/wQEAwIFoDAd
BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNV
HQ4EFgQUeYoyZnP2SfEDN9H7OYSffcxdBnQwHwYDVR0jBBgwFoAU0U2cRqVcjSy8
B9Nn5DhG94bKoBMwGgYDVR0RBBMwEYIJbG9jYWxob3N0hwR/AAABMA0GCSqGSIb3
DQEBCwUAA4IBAQARYwN9/699uwgqdCcd7j8ZnkJfEBOiggOJKcCQV8kd7eoKUP3p
bfgbp5/cEAiI/3hNyZYuu+NxOYecyv2M/lls1NrSOX6+boHpYfijtZ8xVrBNVrY4
OhkubObn1zmPcnqO+E2BbIPIQjcFmZhwJp/C0nlugDWbBqBq2nyASVay8MWjHqhk
VqMNrMYNr7+1U+NCDe+XTkDC9y6N3+MRN9LMWARQT8zagxsFN/g7HHl8MfE3xhiT
+SNID26wqDrVlNscnLZo+MS5m6llBJeQQNLkKQc399b/Em522+cPJ6XGfpQdixSU
HpTFDAqspwdlWu6GDwE3uc5sdSX84kzU2e/E
HQ4EFgQUXJTZKpg0EYo+wtiYmacwd1OSKfgwHwYDVR0jBBgwFoAUKSYr9O3ZGPVg
dM4AesDm/xzIvKAwGgYDVR0RBBMwEYIJbG9jYWxob3N0hwR/AAABMA0GCSqGSIb3
DQEBCwUAA4IBAQBd3RuqNsDxYS/RRc9Df8gLaXn/QQhATx6s3+pKHYplIH9sGPCh
ybI4MpwLnuoqxew8dxy7oi/BBXPWSUuVznRV/vLKAIuULoKg2Eb06d17OmqOaakl
asGnJ7z9e6mxHPVDzjkORNlJShY4YOG0tUg4hC5/9Qxh6EGNUKtRC3x4Tm8Jl6me
uGLUjsQV7YhQNRDFECUQmKwolEbwXbAi2SN3I37CBFDFwDT/0BxtfGSn0ZiXRHze
k1dmg9V3r9UPcucb3Djoad/N5YClfFtX/ANC8bufkkdfQLQwIBCUwcPlGxrBAVoD
BoqpmQdpQ/yINKesAD/r5dF2SmUEhZhn6GSK
-----END CERTIFICATE-----

View File

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

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEBzCCAu+gAwIBAgIUNT/vFvJiTMq0dBPYDHPF2ziOP4UwDQYJKoZIhvcNAQEL
MIIEBzCCAu+gAwIBAgIUIqRH3sc1siaGkZVpWKSoDAIEMucwDQYJKoZIhvcNAQEL
BQAwbzEMMAoGA1UEBhMDVVNBMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQKEwRldGNkMRYwFAYDVQQLEw1ldGNkIFNl
Y3VyaXR5MQswCQYDVQQDEwJjYTAeFw0yMDA5MDcwOTQzMDBaFw0zMDA5MDUwOTQz
Y3VyaXR5MQswCQYDVQQDEwJjYTAeFw0yMTAyMjgxMDQ4MDBaFw0zMTAyMjYxMDQ4
MDBaMHgxDDAKBgNVBAYTA1VTQTETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzENMAsGA1UEChMEZXRjZDEWMBQGA1UECxMNZXRjZCBT
ZWN1cml0eTEUMBIGA1UEAxMLZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQC4tXMtvn0addMj/GIZCOkn9Pmz6pJ4OajBsE2ffE8pssoe
2zsijFsQdjxZNZO9oEnuQxhK8lKx3sMvNWN56wZaUmZeCUXOOQQon1HHsnNupGHE
76gPTQFuWQHszWy2sTgcxiGxe8RPJDbHYQLEkRIdfd41Pr9m2+giSO54Q35fY61J
SgQmXO+rJJi++pa7Q//HYFNwj36fu0lO9M4WpEfHVAQYuYgSbr+4Qu79j8eb2T8N
oKjHkYHpdfDSSSJQJzTYWPsU8OwD1nabbVlQwV8/H/fHZXfzT+USd8QES9SjC2RP
ILcgpR3B5NtYsfL61UtYFrEBwi4O2iMu6X+3CD6rAgMBAAGjgZEwgY4wDgYDVR0P
A4IBDwAwggEKAoIBAQDUTSITIyfyfyE+fdQGM8sali6fk4pFCpuODbljr/ywVI81
/MrLGhX/zySgRHKKG5f23CWbImgtIsPbScKxNNQcvDRXmbsLtlH/o7Eoun/e0aGp
rzr0p0QNGGeKFfUBTnaB+Z7+V92oxjNAuyeMZstqJxjOWDGpCS+yFVvP/ElRsL2H
JVZHWOykwKdLznRUjlw//PcvJrNsO9DzYluZ6tDqlN5nyB6aW0h9ZkcCskGDo+1V
94tjh5rGTscREVIWxVxHgLMFlvaEJlz64pVgc8VWD6famaiqP5nC0WOx5BJtSrmF
3WH97DkfVcXWpqUbEAey6G4sLU0a/08iKoWbJmbvAgMBAAGjgZEwgY4wDgYDVR0P
AQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMB
Af8EAjAAMB0GA1UdDgQWBBR7yTFFaeONzBupvYwuDZjzDBnpMTAfBgNVHSMEGDAW
gBTRTZxGpVyNLLwH02fkOEb3hsqgEzAPBgNVHREECDAGhwR/AAABMA0GCSqGSIb3
DQEBCwUAA4IBAQAoaU4r6LWkz6cJRyKYt+VDc6a57mf3Ld3iq1au0yb9xVDPSGf2
TnY+HpmQQMxL9nlOyd6yGijzdi1OOmw/GezfoC75+Dr/08ePdqNav07N5QqBsw11
nGwS4XrzZkiopEvhBWd+bLw2CdncnmJJxByc3Lpl+AP0h6yjpcwn95pFEaYLPEg+
ZVEb1y/z7NvbDEIl40SNVG7Ms2hMTjjr0Noh7QGrhif40GvbF9l1iPCZlV6+z/w3
T4ojo/Ul970vmALCPo05qXttubYB0nWHCWm5LZtYGIF/3ag5dGo0Zue5cpF6+fzF
lRCnby+d4FJYUAp1vKrD8mub1sbMfmf88f7d
Af8EAjAAMB0GA1UdDgQWBBQiwt5ZVBlE2nrYnp5z4R6ADUnCwTAfBgNVHSMEGDAW
gBQpJiv07dkY9WB0zgB6wOb/HMi8oDAPBgNVHREECDAGhwR/AAABMA0GCSqGSIb3
DQEBCwUAA4IBAQAh5Jxw4TbDnQJMzj53KxEgNxbd++p7LMhZkN5X8jtuDe81rzeQ
CyvJlrLEVPKbXiQF6cFV3TOvrZY/PM8UoAcXv0noEtrlRrrjbk9e4My3Zu4O1IHB
MvfXOuF8JN5L3kCrcUcjhMrx8XTLyathSTQxG6TCh7X4+/vXufbZkkzg8nhtSSWB
t7hWYo3KA25TgjP4E68BpnddNe9ad2sMIpIM1ovhhW6v8Uzux+eKkBkeb2Cdmrhd
CEzK33WrDPCLsxa8hOByCWFj76qQ+Q5kgJvK3F7kBLWijhRKLhJBQzCJDCvx4yE1
w/e+aG74m1tAID1XjTuCZIcTZTEHZi31ogVM
-----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAuLVzLb59GnXTI/xiGQjpJ/T5s+qSeDmowbBNn3xPKbLKHts7
IoxbEHY8WTWTvaBJ7kMYSvJSsd7DLzVjeesGWlJmXglFzjkEKJ9Rx7JzbqRhxO+o
D00BblkB7M1strE4HMYhsXvETyQ2x2ECxJESHX3eNT6/ZtvoIkjueEN+X2OtSUoE
JlzvqySYvvqWu0P/x2BTcI9+n7tJTvTOFqRHx1QEGLmIEm6/uELu/Y/Hm9k/DaCo
x5GB6XXw0kkiUCc02Fj7FPDsA9Z2m21ZUMFfPx/3x2V380/lEnfEBEvUowtkTyC3
IKUdweTbWLHy+tVLWBaxAcIuDtojLul/twg+qwIDAQABAoIBAEpLTbs6EgbpGpaw
ZuLL90BHpIJuGSD7jDnwCKDcNtk+XVcg9j20t9I8xJRbXQQaa3JHEYffxUxfHiIo
ds0sr/73gs5TK31B6L7QKmxJBm4b92lnvjD9V9SDP6d4j0BCsx+7wASsFC+DEPeM
OTlIYsFzBcRj60fbrxjPPgAoobWK6P+USKMXF/ht3+J8b2a3ixYbHPyH1Ov7ly9Z
EXmSDBoNz2+uBQYsmKc4Ty479/dYlXPW3ibeSYPYvem9oXIE7xG3vAdQUesB3rHZ
ivFJmnMwuWeszb2eh7HLvug2q0RD8qQYu7dlOl+OhWCvGlBZCgqs5xZNDWWJTw7Z
u5oV0U0CgYEA+z6muH4df1NNpm0Q8VutUFKyufAfgijH9G5wQA8MYuh47flAiYm5
EvYvn4Gkfk34uTvsWcxZHxcFZA01gZcD2Z6gFADsd5CFBxLXFvClhQFC7rwtLS/3
pZvZcAezIWYcmpwdggPpLRR7R2lu+nCzn1tx1U8qyhfjEcFyAEfjX98CgYEAvDRp
/GIq2ZEnT5/jWCVkmuZiHvXqFGLI0puI2BpP4a8mH1bZGOiYUZLh/JsOvHmFITft
6FLZA+88kkgBtpFYrmwkNR1O1AIpaaG1UtLQ1DBEACYplHbiKahqLiG1T3ex6Ym5
rbzPMMo6OucGxPAgw86fKOvnBdrECb/GFqxRSrUCgYEA6e6a03txwaTxzv0MYn6G
8BwgF6qx28JW84uE7tBUKx/jwUhsQ+O9NB+Plgfi/kthRC+8UJxJev43YcI+yKuw
xQbCa/20L1ub0UtEhDKLGz1iceE6ezGHd2aWXY59xqJKDddATleP3A6O/p333C3l
wYImioONBuCY52Zj3EkTN6cCgYByWjZ7jvoSL8v+6VstV6sFIy5DOY/8yvjSXoaL
J5GZwt4a9J38MHc8OU7uORh/FCb7xAvduVj6twXKq82+rBmCAVsOmrwmvRmEgSi3
JjiUdK8cmBNzjbhlL1s0pG6R1lxXVcNn+Oy67GTtHSpTxsNhtc2nA47fU8kBU3B8
nj7WcQKBgQCbjwqzvq4eHMwLIhqq1G1abBKox+tDYcIwlso4e+5eSLxMjXEUArdN
AAiFEXrvpjJ25BdTZBggn6iyr2HIjzvJLkPb1mKTgUtnrVo5Kda2qXoclBMOHvlC
TYS1cetnMaqc5/rbKKyB4haItjssEezat8K/EkuP4e+h85jPa6Ku7g==
MIIEowIBAAKCAQEA1E0iEyMn8n8hPn3UBjPLGpYun5OKRQqbjg25Y6/8sFSPNfzK
yxoV/88koERyihuX9twlmyJoLSLD20nCsTTUHLw0V5m7C7ZR/6OxKLp/3tGhqa86
9KdEDRhnihX1AU52gfme/lfdqMYzQLsnjGbLaicYzlgxqQkvshVbz/xJUbC9hyVW
R1jspMCnS850VI5cP/z3LyazbDvQ82JbmerQ6pTeZ8gemltIfWZHArJBg6PtVfeL
Y4eaxk7HERFSFsVcR4CzBZb2hCZc+uKVYHPFVg+n2pmoqj+ZwtFjseQSbUq5hd1h
/ew5H1XF1qalGxAHsuhuLC1NGv9PIiqFmyZm7wIDAQABAoIBAQDP8BSV5fM0guxO
xvOqd4RRMBPOXLYrVW5yvmJ8j1zSYKA8YrNGJvCxM3ROPXxqZQh807dJsXOT8d8f
o6k74+B1nKkvu/UGTbcWyn+0wqaH2Y+cIXN/OW1f3i1bhJIKi41rVNEzkWAb9LUy
i5z62ZwXBuA3Cw7o34SFyoG4vwQZK1efygUXGIKSHdwAW7mwPD3MLIuIJgDrj2P4
2aLb1jcRyUKCY06QD7tsOH6pn59qkjVnoYMJl7B8DiCRFXjtt1yRZ5RU9sMT8PxV
Px29qIouHvKcLt5cNX/Z1VjoopTHCOvhKMmQzP0ubPp7/Ytu2tPQcc/8DoZ/3+aw
Zr+27SSRAoGBANva1d0wSR17QTjfcKLDup9+ERztyW2fxi7hGgKIqzPCY4E+vGTX
KC5eToNpyo89COa/Z3rHKzLlSYpDaQiB/kWqEm3HPEW2Yq1YHaI7nZsuBPUkMtH+
xOBFyZUYG2aaqQiBuvvSJRxP5puAXGlIWAQp9qOLwtbQJ0gGRMhq4yutAoGBAPc0
Y0xzPNpTkjcRGDN7srcZw12tqy5bpi/TW+Ynlfxg2OnO5e4W9TEgFxcsNeqAB1IB
QBd1QhVnpHFANIThX4XNQ59FJ1jOYuRwKWpjBNOol3YWhLlBwPrRLxJNxYXbZha4
zafhrvv3VMatU9Tc+a4gnZ+ooSM1m/rTAQqfunCLAoGAIAHC4tm1u0IHY8U7u6Zt
E+0hhqmjin8ZNhf1VmsZKYbiP52nhbLBGccG/SC4qZPEKPuyj/BQ/K7evu9Dakaq
gu/YkPzRbIC56uyKG+U786yGcj3b3DCP7uqaB0ekLZLUivWACEs2teF3/Cl6yqUK
k0icrICbU/Sn01d+SgMtoV0CgYBzUx9YFRK4j/BQfEscCYMwZHZ+B30qnVsESMhA
sQsJuGy5dupRjqhIiL3884UbpyrDGQ47Y1q2/aj7pIZbz4BuvXnknbBjf7Um+SR5
G0SvMaGnV44HlyNeX6RkF6AkeFxCEWjv/xtRNOt53HaVgZmBoHmoeFTkRihEdZew
yx+BTQKBgHMs/wLEaC0zLeYZV90s8cR+LqrRl1IkjEtpHg09ESDLX5IyobivSmbB
wOkkFI0N9KzcDjwj3qmPeyXiFIAOX5ToXAWM1tljUOfpniwxv69bzUkSZqwopI/0
OK6gMIYt2GakcSIQrqHBuvGEKEM8I7Aa4QdbO55J4T6qYMqO4xyV
-----END RSA PRIVATE KEY-----

View File

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

View File

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

View File

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

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----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-----
MIIELDCCAxSgAwIBAgIUcoLcoef+rdOKZOwCmeduh3R7TS4wDQYJKoZIhvcNAQEL
MIIELDCCAxSgAwIBAgIUYcN3lj3pyfwV4xtQPKH6l61/GHgwDQYJKoZIhvcNAQEL
BQAwbzEMMAoGA1UEBhMDVVNBMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMQ0wCwYDVQQKEwRldGNkMRYwFAYDVQQLEw1ldGNkIFNl
Y3VyaXR5MQswCQYDVQQDEwJjYTAeFw0yMDA5MDcwOTQzMDBaFw0zMDA5MDUwOTQz
Y3VyaXR5MQswCQYDVQQDEwJjYTAeFw0yMTAyMjgxMDQ4MDBaFw0zMTAyMjYxMDQ4
MDBaMHgxDDAKBgNVBAYTA1VTQTETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzENMAsGA1UEChMEZXRjZDEWMBQGA1UECxMNZXRjZCBT
ZWN1cml0eTEUMBIGA1UEAxMLZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCdisAXDRAiIrdSmaJbgyxj37Z5kpFAtyU635SRepzZBf0W
fK71ITPjAD2miW6ZHk1VQ+9yL7odNRJ8BYFzHSBc5Buvqif0YioSrX4Mfnp2lvHV
eAiiWWvNXGgGjkxwkVNI9FUb3cmmMMUicUXyFMk8/mATmLI8T4GbkFrF/BgnWGQp
TU2A3MR3+A7kE9SkrwZ1VqaczO0PGc6aTgQ510l4++SuAnwHvTFICDWoydm6s85N
7NZ/VYvhtduHTIlPyDid2TKXmmOMaV7oxVaX13nnNRnlzHbZfAxpBM0K3vIwCnR0
kmkUWYBNuI66wVJ0Hrqu78HfnS+5V5BpNm7ZUYvjAgMBAAGjgbYwgbMwDgYDVR0P
A4IBDwAwggEKAoIBAQDpVKzMA1J6nfusMHTkdLzTh25BPsP+LI9qVhGVBnT3Xik3
yZ5QkbpH3kRRj7krRvydO09FccZ4807rX+pP2V7NNz9k9wuOatZl62/1uQFgtpC6
IEj0Y22w4BI6RbmWsoXG8k0/vr3r3J+X/RdRI4Zj9qjDD8YE0SDapnmpTZ/s8GKY
fTkv+vadEYvRS2ZD1UivNlMqHjL+YUw24slTYY8vlzgBc9sB8nC4bnXKBbBDCvUd
iHBHqM5SFYzHEdViDRUT6SwBE2QmODsasYJRGUPhqabNFaxpP0xa6D/uQoQZ4UTi
4Ljw0N+j5wpbogJ/Pf8rfewTKobQSO0jnZi5nmwHAgMBAAGjgbYwgbMwDgYDVR0P
AQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMB
Af8EAjAAMB0GA1UdDgQWBBQvfnfIQgTeZYOp48+l5R4Nh/M3nTAfBgNVHSMEGDAW
gBTRTZxGpVyNLLwH02fkOEb3hsqgEzA0BgNVHREELTArggwqLmV0Y2QubG9jYWyC
Af8EAjAAMB0GA1UdDgQWBBQxIm4m73svrwC7gqsRhW8wVL5CyjAfBgNVHSMEGDAW
gBQpJiv07dkY9WB0zgB6wOb/HMi8oDA0BgNVHREELTArggwqLmV0Y2QubG9jYWyC
CmV0Y2QubG9jYWyCCWxvY2FsaG9zdIcEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEA
T/xE1LSTumAfgsW8kHPA8SAhpGzBU1OAeLWLdrPZxJA8VShr19brYKjQiUzO+bFh
eLXdPHaKEDXuJ898XcE7inf2TF6X56I8hfZ87MqnMLrrLt5tWAPZ2DiNFdOJMitG
7kaQXA4L/uKgj4kGrSbbysUSyY3MNToPJNSuIS8JkAjyY69POdognZxCC8zSWdVw
cDhlFqdiTB6Yvbc6i/rsCs3PE58mjtOiKExhnLY9PK+XO1veoL02RwrxFTjHFEuR
0KcdNo8VdCtcRXccmVol5GuGNInDtjqF91yFR/30T93La+G3OLRTG5qaSVBx7Po+
HuPp9ldqccDv7732zSK19g==
yDzgXQZHgP5uFuCCsoGGCSfOiUxEcFpr19al08mlL88Hw69QExEJK2wNmGoVY/v2
fv58gnUvDzJ1+V2MTJt7NkT28d05pJ62ud6auH1I3SwREN1mizXAx23P9sftSGln
gdTFnyS/9U15BkRJSYe6w1Bm08GRsosVM5poKbYOol+Cx5WyVQHedf+GFoTSu5lB
16mKjYscvezeIgWCW/X8MGju8HbCOOV/SKPJ8MCK4fBxdESTuTsmM5rZj3n9ROY9
mvAMcLEDa8xhRHkdls7pd/ZsypN/blbVMBskCldiLLRb6FwI6sarBzihofW4nwef
S8e6/xuD4RxpUMOcMBuGSg==
-----END CERTIFICATE-----

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,24 +1,24 @@
-----BEGIN CERTIFICATE-----
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
F39nwIe3Mo9dDdxlnKv7IQ==
FCfeTDh1DzpNlcxbublMCbar8ZoWHXd7k5BmWJBqA6qmRPGa6FBZ+8J1jUs+7ZFo
h7Cd4cOfn77+VxGo9Rt5bZ4t/luZrMNGVDO52CD8eSR9+iZ1OMTtYod9cjuX24aQ
oXTGvuwVnSXBxqcettCBfNOCPT8oWIdDY6gTUzl3GjiFlX1Jl9nntCAqxO67rcDZ
KzX33NUewsOHuA6B7Plzhkw+WNUTHvrlrJBolWWYZWArwR9PrmmsmynXB7IXU9vA
HvFpOZ5vkqq2lV0+Sk4Rwg0EQX0Wf9LyEEDBcCNTOqVv+Dbj0+i+cNPz/T05vkA+
gxtYmjZz+g7NIVBSMyqSQg==
-----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAv8jnkFIrHKYBBjdz68BsrqBV5gz7ZtEvseFDqLVGKeYOLYzW
w8YrOyYyKoY5q7m4OPs17ZAUtGg3kxvF9clmY74ocou+4C4PdkIivid1ENDlrw4R
0nrULk0lazuPgMSuH9cMjzWlR9KuH9IBNjtc4dTLaN9xUIdkaVeyPd9wFUvpdeiS
SLGyySxLVZ7/BCxapwCWAHOWQg/lvWD/NPXMgxCVXXg6qdXErJ0z3iLAKRBwW75t
0L87LkFoupX4RHaBnoSmbnV3ZVo2tH6oisIKckjyUYjo+EdPbKeqJNMvcMgM+wnl
HzAiOloup/dv9TCMsncoKNE4WGMkFf2TWy/UqwIDAQABAoIBABGxWRuJWQzVi7al
Gv6ey+f4RrRocjD0D3BblcBUqNporNoq6g05lPdp+KrPozZidcpb8oeuCRrzmlzp
7QNVxypgep7GoZ9Q4IBKbaYZQcWBYA8cPyypxDVZTKBt6Dk6681oK3JywoKzvviU
iSQVqeXzmahdJLkHJI5LVtg6ar6sDz8YJ4HZZoEP0p1joOpUZHqTTWrpY/qvFvV9
UGNdHL79U4kkmHlyU/8WRQVZEJeSMcrKCDWfXkhcmy7C1flVA97UObT1eJmGkF08
derC/Lerg3RD8rkdbcGN163/qjI2wV+pXu/YchptVH0wbrb/4REhR41ZluEC3zbF
V6cy05ECgYEA5XnuHr9lQj2JVvly1zKdanFdqhnLm2axyXXp70cxTnGRmNBDQPZm
DgBkj19ik6ufLJAIEMwcyv6nwDjT3Ert6ZrtRsBtHg/TtjQzJRQy2xhJtWhmwRgA
KXxWTnM2VeeHFwPB/kA0ut95cuhizdSpRhGlL4NWhvCqiTIKLAcX4AUCgYEA1fO0
ZGCyTLRbEklybjFdiIPkzlZR/OLb91UWcV8YlEBSwlqPbyftfjaVc6YKXA44C5vJ
4hJJWsW1HXt9p0XgcemshacfkjMYKcsJPeK/Tr3UbMQ8iQxkU8vAU6fRLR/d0C3e
3kQ0pwAe2kwd/rX4fuaAIzdBxoz+HwNCpmUt8O8CgYEAnwpjg0HpPwCBKBtYgVce
DICnhtW77Gc/Pr4PNPvla1WAsCVfBy3+SyPwjgFww6HFftAQFvwv1Gyr/KgmBV6V
BzuNyWRh+9zCQVxqOf+Gw5xQsX67AIbOzfHTqylkdiMx2DyNfdYn9YAenwn6OGd0
LhDaqFRhasJvnwhkTmFYJbUCgYAsZTB2b7YvwnDvX3w2L1ooPK4avsCuh+h67xYE
GmaARMSnfaErwI5AVVU3tSmLJowspHwExCSiiEnnvzs4nYBQQtvAtAgSDzYhXfch
904ZKbzNgP7KtV6QIMRc14LJKUaerxYC6wY97QF57LeApgPVWUEXjZzBdXo5tzR6
UJ5y0wKBgFQ9PDlgQENXlTBGpqHbu3ZnWj7tkUoR8+4Y8RTt23TUVG3yn6BPcCBo
jsTKhgFstgDnsLFQjkys1hh+ktxLmVMEFjNzh+zzaZtSdIcS4lod5MJVU30MT7cF
Xe2A4gMNtm4MKBh2xUvMAh1KDNQtHg7nugUCBFEZujb10QqWRD29
MIIEoQIBAAKCAQEAngY+Rv7LFsJ4o3Ga/05P6al0NbnnJ+89NCJWjiJTmlaXr+b3
WttymDQ0Z861mEUukqekSz+2MxjQFFMawv+zMClno7+92xLgPqTNLJK4s/xrp40R
ByPl4vWDv3JBlBRuzqICclddXRn2/dgndRbWFT1VqFxhvb+bIiMi8/wSXZyJd6HA
cQ235hkYyQ/sNFiKYJAFRh1Ds5+xjeiPBquuq+O93TlVeBZx+Wgu6PEIlXDCtQde
++J90HJWxT4NUKRka6EjA7wUprRholunZv89ce30Ccs2ymHLLbRO7tIvZAXyU7n3
D3TjiZG91D1hP4TmOBSToILDCl/JdVxtFSW1tQIDAQABAoIBAByHlAbNSW06fv1D
LXCaeuL8rPZmMc2L68jVyjqvB9j9eTVQxaeppu7DvhJfx3lORDJGAetz/TkMacTB
nDtIXtl7IDL4ExbSOZoVttUtSBt2nxkI5uIbIQ3wtXCC+EP7zGWR6k8qZrjAT09V
DwqcrNn40NYsl5jiVue64DycbdRofeE/GGyp55LkrIavI8ROPDHmXIDleHr/fnS+
/3cwmRl0YWJjdFEuDsP8SIfH87UC5dlEq0q+6XV+Rm/sYWKnCMDERXLzIUfr6OcE
G/dC8OnjhkLfAykM9runu+QQJUtylqwVZbM71Gr0GxsjU0b+cWsR2H2gd0wChoJN
Au89+wECgYEAw3GZ7VwOn5d4bmYt4t7tVg3XXw1EAurG4mQeuLBxP+bThLCBydEL
e6Zg5xfJlJNqTAGEsTqqFB/36ecLNuf+nm0lSwssTchn0xU3/0kDAw+QOS/6b/zq
xxabtTa0GDOGMTu1aVbM6uKIziEgiPqOTYyJKaAA2ITSCmwiZ/5OxZkCgYEAzvyT
eNIiI/kzzfhadDqL6FVvd4D8A6x18YQySt2VTHQcn9f4p8QSD2DPRlgnYLACxFQV
XD34c6IeFVLM2/f0+ZRFW+Hf03AZ/ytoe2MSYTmYDtWMGjsHNF5xO3nkE3oQla1O
bKXBmJ0oTr4NIL5vZ3rV8FTIFYY05YfaMBi5Sn0CgYEAsQyzPZPcZ3SHE7Oas9/x
LrihNylESEQ44RODxRmJrjLDwHtJR/MIrP3+4Lnq0Z5td+cUNp0HP+3p3sl/nkCx
pwEG/KFlhB0c+NpK/Qc+JEKwCy5Md7CtWqc/bPzeTuI2GVmWsJOCVPHcrqbR22Tn
DpdWFhAtU/eWcvyceoqk/1kCgYBv9L3vg/lja89RgRur8l7qdAuun92wPwAsekyZ
ofC3QbaZ3r9oPu1l0/9JFTV3XrygZLqJAhv4r5+F+RtFf4DJ3iEF6c6fFut40YnZ
82RlojlVDLyTE4p6EPs+KFftEQEXdH4O1jk4ywiaTsHbDCZF2nMNY042FjlWTXz+
tuDCIQJ/InGW7eqaTUGxOC7XmvtSyuhP93pzEXY5hm+WQSWnkQIKfM5c64fsbnps
+rJgOmykj+QyvEiVgoPdlbd3FDAgK9YR/3vYMsLzQ4OIZLx3b6/cvt1bn9VQg6Sl
rFTa9FlOGBzNF0MazAEGygml8AcGdAkz3ztrWr5qXhJXaSMDvg==
-----END RSA PRIVATE KEY-----

View File

@ -87,6 +87,15 @@ var (
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{
KeyFile: "../fixtures/server-ip.key.insecure",
CertFile: "../fixtures/server-ip.crt",

View File

@ -59,6 +59,16 @@ func TestTLSClusterOf3(t *testing.T) {
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 TestClusterOf3UsingDiscovery(t *testing.T) { testClusterUsingDiscovery(t, 3) }