diff --git a/config/generate.go b/config/generate.go index 1f99dab0..577f4dc2 100644 --- a/config/generate.go +++ b/config/generate.go @@ -217,6 +217,16 @@ func main() { log.Fatal(err) } + log.Println("Generating second client certificate") + cert, key, err = GenerateCertificate(caCert, caKey, false, "localhost") + if err != nil { + log.Fatal(err) + } + + if err := writeCertificateAndKey("testdata/client2", cert, key); err != nil { + log.Fatal(err) + } + log.Println("Generating self-signed client certificate") cert, key, err = GenerateCertificate(nil, nil, false, "localhost") if err != nil { diff --git a/config/http_config.go b/config/http_config.go index 95b7711d..665264c7 100644 --- a/config/http_config.go +++ b/config/http_config.go @@ -1484,11 +1484,10 @@ func (t *tlsRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { // The cert and key files are read separately by the client // using GetClientCertificate. tlsConfig := t.tlsConfig.Clone() - if !updateRootCA(tlsConfig, caData) { - if t.settings.CA == nil { - return nil, errors.New("unable to use specified CA cert: none configured") + if t.settings.CA != nil { + if !updateRootCA(tlsConfig, caData) { + return nil, fmt.Errorf("unable to use specified CA cert %s", t.settings.CA.Description()) } - return nil, fmt.Errorf("unable to use specified CA cert %s", t.settings.CA.Description()) } rt, err = t.newRT(tlsConfig) if err != nil { diff --git a/config/http_config_test.go b/config/http_config_test.go index 060598b7..d73864a5 100644 --- a/config/http_config_test.go +++ b/config/http_config_test.go @@ -41,18 +41,20 @@ import ( ) const ( - TLSCAChainPath = "testdata/tls-ca-chain.pem" - ServerCertificatePath = "testdata/server.crt" - ServerKeyPath = "testdata/server.key" - ClientCertificatePath = "testdata/client.crt" - ClientKeyNoPassPath = "testdata/client.key" - InvalidCA = "testdata/client.key" - WrongClientCertPath = "testdata/self-signed-client.crt" - WrongClientKeyPath = "testdata/self-signed-client.key" - EmptyFile = "testdata/empty" - MissingCA = "missing/ca.crt" - MissingCert = "missing/cert.crt" - MissingKey = "missing/secret.key" + TLSCAChainPath = "testdata/tls-ca-chain.pem" + ServerCertificatePath = "testdata/server.crt" + ServerKeyPath = "testdata/server.key" + ClientCertificatePath = "testdata/client.crt" + ClientKeyNoPassPath = "testdata/client.key" + Client2CertificatePath = "testdata/client2.crt" + Client2KeyNoPassPath = "testdata/client2.key" + InvalidCA = "testdata/client.key" + WrongClientCertPath = "testdata/self-signed-client.crt" + WrongClientKeyPath = "testdata/self-signed-client.key" + EmptyFile = "testdata/empty" + MissingCA = "missing/ca.crt" + MissingCert = "missing/cert.crt" + MissingKey = "missing/secret.key" ExpectedMessage = "I'm here to serve you!!!" ExpectedError = "expected error" @@ -1014,6 +1016,8 @@ func getCertificateBlobs(t *testing.T) map[string][]byte { TLSCAChainPath, ClientCertificatePath, ClientKeyNoPassPath, + Client2CertificatePath, + Client2KeyNoPassPath, ServerCertificatePath, ServerKeyPath, WrongClientCertPath, @@ -2067,7 +2071,7 @@ func TestModifyTLSCertificates(t *testing.T) { func TestTLSRoundTripper_NoCAConfigured(t *testing.T) { bs := getCertificateBlobs(t) - tmpDir, err := os.MkdirTemp("", "tlspanic") + tmpDir, err := os.MkdirTemp("", "tlsroundtrippernoca") require.NoErrorf(t, err, "Failed to create tmp dir") defer os.RemoveAll(tmpDir) cert, key := filepath.Join(tmpDir, "cert"), filepath.Join(tmpDir, "key") @@ -2079,6 +2083,24 @@ func TestTLSRoundTripper_NoCAConfigured(t *testing.T) { require.NoError(t, err) defer testServer.Close() + tests := []struct { + cert string + key string + + errMsg string + }{ + { + cert: Client2CertificatePath, + key: Client2KeyNoPassPath, + }, + { + cert: EmptyFile, + key: ClientKeyNoPassPath, + + errMsg: "unable to use specified client cert", + }, + } + cfg := HTTPClientConfig{ TLSConfig: TLSConfig{ CertFile: cert, @@ -2087,23 +2109,50 @@ func TestTLSRoundTripper_NoCAConfigured(t *testing.T) { }, } - writeCertificate(bs, ClientCertificatePath, cert) - writeCertificate(bs, ClientKeyNoPassPath, key) - c, err := NewClientFromConfig(cfg, "test") - require.NoErrorf(t, err, "Error creating HTTP Client: %v", err) + var c *http.Client + for i, tc := range tests { + t.Run(strconv.Itoa(i), func(t *testing.T) { + writeCertificate(bs, ClientCertificatePath, cert) + writeCertificate(bs, ClientKeyNoPassPath, key) + if c == nil { + c, err = NewClientFromConfig(cfg, "test") + require.NoErrorf(t, err, "Error creating HTTP Client: %v", err) + } - req, err := http.NewRequest(http.MethodGet, testServer.URL, nil) - require.NoErrorf(t, err, "Error creating HTTP request: %v", err) + req, err := http.NewRequest(http.MethodGet, testServer.URL, nil) + require.NoErrorf(t, err, "Error creating HTTP request: %v", err) - r, err := c.Do(req) - require.NoErrorf(t, err, "Can't connect to the test server") - r.Body.Close() + r, err := c.Do(req) + require.NoErrorf(t, err, "Can't connect to the test server") + r.Body.Close() - err = os.WriteFile(cert, []byte("-----BEGIN GARBAGE-----\nabc\n-----END GARBAGE-----\n"), 0o664) - require.NoError(t, err) + writeCertificate(bs, tc.cert, cert) + writeCertificate(bs, tc.key, key) + + r, err = c.Do(req) + if len(tc.errMsg) > 0 { + if err == nil { + r.Body.Close() + t.Fatalf("Could connect to the test server.") + } + require.ErrorContainsf(t, err, tc.errMsg, "Expected error message to contain %q, got %q", tc.errMsg, err) + return + } - _, err = c.Do(req) - require.ErrorContainsf(t, err, "unable to use specified CA cert: none configured", "Expected error to mention missing CA cert") + require.NoErrorf(t, err, "Expected no error, got %q", err) + + b, err := io.ReadAll(r.Body) + r.Body.Close() + if err != nil { + t.Errorf("Can't read the server response body") + } + + got := strings.TrimSpace(string(b)) + if ExpectedMessage != got { + t.Errorf("The expected message %q differs from the obtained message %q", ExpectedMessage, got) + } + }) + } } // loadHTTPConfigJSON parses the JSON input s into a HTTPClientConfig. diff --git a/config/testdata/client.crt b/config/testdata/client.crt index 5e68bd44..fe689964 100644 --- a/config/testdata/client.crt +++ b/config/testdata/client.crt @@ -1,32 +1,32 @@ -----BEGIN CERTIFICATE----- -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 -Lc+UGxJB/WZg4NvzZSaj2MZmt4zOHQ== +aG9zdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN1MI3XG/1/GfmQB +vqIl7Ow82nM1ZtBHIJzLtYJp1vVoHnVvF/jR8PjafaMVX+6R6cnF8aQ4GOKrTwax +BdNB4ij62KlaXh7e57JiMWydbOwCvtWfEUlFuUYOQbImEY2/jUJUKZPveLKpXGvH +XOSIq4jJFNI4FjR1QoHj7EFSxktfn1wDzOfvczmUYKGjXsh0LYNGmkKix5UH82OY +hlNdCqTV0QK3gmQJ6LAzzOe2b6o8Zao1FdVgnwWQtXnKXnFSvRBfrpY5rCppw8pI +kHNTXApDbUvdr8N+gvSSmtPd/d9nqg2/x55uxgVOQA+9NSo3KN1tvUJgIdzqDHhN +WgCo0jV3fKsdeyi05v0Rx71SKPxseRSPbJgmO11U7rg/nXwI3MOr9+nBQJGb1/8I +aBqAl5AZKylJTB/c42fW6W3nADUatRpn/UjRZuReXeDwnvydxe7l9+SrP3GktHZH +IROJGnxz8rwjlL5UYd5dzjQ9v7mU157sE76veE54OCSQo2S9v8SmyK8UN2PwIhvw +H4cOK5eW1NVHLl0BdNvZFY/ysqKwOpAHp5iX1ZB0L+dq74I/F2weGqzoY9LEz8Oq +L1wGeGsBLGTsOTt3O8PtTynfOAQ4SbTouzpGYRTvEV+YCwi2DZBsAxduK1MRSJES +obni54L/vbjfmw6Rx8FHzDScv8RnAgMBAAGjVjBUMA4GA1UdDwEB/wQEAwIFIDAT +BgNVHSUEDDAKBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFKHD +Wkn86+tlhyjbNhjW9TAus5STMA0GCSqGSIb3DQEBCwUAA4ICAQBmnvO8UY4toq0J +l/AjwjBvsNutkUxXibwwJz3I4YTba8OwJ913H1L03YESz5te6U8dntdDw0yK/0o5 +fOwi5X/qheMsIE/K7haTTZQvgIhu18YxBQ10OT0ry9x5kYrCPrOqzM1hxf6lbFHR +R9vvs7hkRFZ2lioiL8VAmyn3FDXjCrqyPPM/Sv7G1BXT9svA35gFNV04BdKUygMi +T8f3wcbqDzL3hUjD8Z+O4tqQLIqtrIDu1B0uxFY7s5YvBX2R5UsU4bDgXGf9R6go ++9tI2RQJAtMxaMk/Ece/mk2gl1LWN9g4MrJw6jaUBi/sRJOZl1yx2LX/mloqGHx9 +KNDK9TJOP2nL5T19HGneT3tuuaKwa6rDiKyFmNHOEuFTb5pJSVepo6v7x5lFp8O4 +nqsTw0cWqaFG2NsJnKqlTkXcrUvK80QDzUHpWbjGsoPl0VFx7TITddTw+UAVR9Gj +VZAXGcl6LYMuxATsq4DG4WOE7GA0KNEgTj9PEEF2HmVNuJCuPXuLIK/hAHLT3nuy +avyfYBsx+GFZMgFVSqLA20ao1P46jZK0QA0BgSRHXLDpha8Md97HdluM5j9pwR8+ +jj3+jjlMSVqOzkJl0CV5gLj+yvrGrI1xJRizQRvjw6VMHUwqhyXHO0tCcfF2y8RN +RBHWiRZNFFXE8R/QndeD3/iHLA9Wxw== -----END CERTIFICATE----- diff --git a/config/testdata/client.key b/config/testdata/client.key index 9c768235..cfdcc1b3 100644 --- a/config/testdata/client.key +++ b/config/testdata/client.key @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -0FRrwC2EvZmAS7m/FHfkpry76CRU +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 +675ncMYLgYHoAK8pQHMwM7A2QkQDqcU= -----END PRIVATE KEY----- diff --git a/config/testdata/client2.crt b/config/testdata/client2.crt new file mode 100644 index 00000000..81c8b580 --- /dev/null +++ b/config/testdata/client2.crt @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgIRAOizkDX0s4ogKGqs7xBHWC0wDQYJKoZIhvcNAQELBQAw +aTELMAkGA1UEBhMCVVMxEzARBgNVBAoTClByb21ldGhldXMxKTAnBgNVBAsTIFBy +b21ldGhldXMgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRowGAYDVQQDExFQcm9tZXRo +ZXVzIFRMUyBDQTAgFw0yNjA0MjQxODQ4MjNaGA8yMDc2MDQxMTE4NDgyM1owNjEL +MAkGA1UEBhMCVVMxEzARBgNVBAoTClByb21ldGhldXMxEjAQBgNVBAMTCWxvY2Fs +aG9zdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMTgPSLZmWX8gZ0i +keWuvTHMQhOt3v0U6JuTOseGeLzeGMIpRF/Tu91ar1ilsQ8QmUfCDHTnoY36SBAp +DMSpurb9Paq9cvgeM0azJUM3HVZKIFU39rFoGNwMOgPrqOp89WwDs8jfPgmIZoYN +apEhd4gGJQkCvD9QGtrSOXSR6/NWIMQUVVx0ufWTM1gn+ZocR1xnJ6oHbgwax0+Z +YZrdEa5P0R9mEnvNNpf96UPvE8D4pYsopL1HEF1KlzqNKnPVz60fMTgGflZ7MWa7 +RohpfY7I1AEv2JmwKEtbIjUjeQ6Laezpt8xOE5iHwNr4RgzkMyz+c065wdzep4+E +mq847ZUfcApSNp5PBxMCpfwccm5E2kpkaRbMSQ4sMj0CoQg5//Tf3n54Smk6hqOk +7wNLOY3HHY1e7QThimi0hv5TSg6sK/YdaGMjQ4vMTVd5iCVyGN6Ju7jpoT6ot+Tv +AKoADJqhnZdFdVy+jzyq1PKATQ0+klG4s3TsQliWD//P3yQJ75rm7tux3F5siaSw +8gAnMD0SvEWDlbdLZTwNefpmVB/o6r4TYM1L4pHGzDGnuVF2pxk9Ur2iC4+0IfQd +8eMkT2wOw2Nzs3CohCHlLcfoUVlKLulYS4uWHyt3/oIIFUnKxPzUcEEIDNH59Qgk +EX5bq7zdGM5+Ora+u2BLS27BzNr3AgMBAAGjVjBUMA4GA1UdDwEB/wQEAwIFIDAT +BgNVHSUEDDAKBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFKHD +Wkn86+tlhyjbNhjW9TAus5STMA0GCSqGSIb3DQEBCwUAA4ICAQBSbcvsqapAKLxo +07iajdi6g8jT+RZF34PBwB+NtTbbfIUliWR6PR/rGBTY9H6fAqF3J4YfYOC1q0l+ +p4PidXC4q9yY4o6++PkGNYm2fsDY8PsqdnVELjs5vDMedGqDEFFUGMCLHblnBsR9 +DCZ/GTFKjFb1deM85CdkK/myMKfCNW1QVi9u/VX04NirTJv7k5+i6TY7iAjA6Y9l +6GdwByEIsxL8oehNZ05HMVi4iRIUzqlV3aOBu5VFrZdQwqKmKQVfEkBPfQ1hu95n +7fE6qdGB66T0oNAiaMipIE6fy/DlI7I4f832bOcH9zFNK6HvrXklVx+mrX2hCHWv +LAQoWqPsOTFm4AVDHTzAOUTJzWD3e/V3uqJGCWOgQ/uQrR8YEgrrY0cpwvvq7uih +DPlobkynO1WjlnwF7A4VI5Tr7sr0fgGbq4zG+zqJFcXEU7Ba4esW2B3jjNFbf02L +XA4xgl1oszQaa9sjJ8T4dB/Gj4H5MuSpwVBte3FR4sY56e6I01EJAQ14XwR9T+HM +nlbSprmpVdzBTjEOQD6zwwb8gJkPlxJpISGExX2DFo4JUcfmN8Xrb4u4qd6dq+8U +SLecjOSwzkDRV6LN2/li+kefs8sm2ItxiTiJpqmTZoFEGW7lXuI0dZBHwGe4tqwq +8EzR3AFd9zVFZdPv9NlznzlwlAZpdA== +-----END CERTIFICATE----- diff --git a/config/testdata/client2.key b/config/testdata/client2.key new file mode 100644 index 00000000..c504e31f --- /dev/null +++ b/config/testdata/client2.key @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +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 +i+gm7H2e2nxSMOwfQYZlUR2uNJEYiA== +-----END PRIVATE KEY----- diff --git a/config/testdata/self-signed-client.crt b/config/testdata/self-signed-client.crt index a0a5cdc6..1dc300f5 100644 --- a/config/testdata/self-signed-client.crt +++ b/config/testdata/self-signed-client.crt @@ -1,30 +1,30 @@ -----BEGIN CERTIFICATE----- -MIIFLjCCAxagAwIBAgIRAMMSh5NoexSCjSvDRf1fpgUwDQYJKoZIhvcNAQELBQAw +MIIFLjCCAxagAwIBAgIRAOizkDX0s4ogKGqs7xBHWC4wDQYJKoZIhvcNAQELBQAw NjELMAkGA1UEBhMCVVMxEzARBgNVBAoTClByb21ldGhldXMxEjAQBgNVBAMTCWxv -Y2FsaG9zdDAgFw0yMjA3MDgwOTE1MDlaGA8yMDcyMDYyNTA5MTUwOVowNjELMAkG +Y2FsaG9zdDAgFw0yNjA0MjQxODQ4MjNaGA8yMDc2MDQxMTE4NDgyM1owNjELMAkG A1UEBhMCVVMxEzARBgNVBAoTClByb21ldGhldXMxEjAQBgNVBAMTCWxvY2FsaG9z -dDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALtrXxnHr7eUM7Xh7awY -LwompmuznbTa/8+OsihSaelUN6RDsAdm7eOMA7KMqZB5NOfeDqEqMIUoaoQ1gzIm -0BJ4dCgi99SnA8b0MjAGqUpRJ3gLLSXsPa5647gxUSP5zQ0hWMMgGaw4rJ9LDOtU -z2S8dtqKTHrXl34mpdsLrZyLXwyz8UJ83Jq2Ngx4cApZrbs+g1XlMRV8Vh89Z2bk -bbKmDYmIOhTeE1wLdrZ/XecEOvkGZcj3bWiO/yTnP8mTER2hTvSxUrpyHn/55LkU -8PR6wCO7hntZ9LLWxg85XTRdWL7cIyjgJgfL9+hVQQyNEjWC2+LTq1QExqa+IxoH -iL4xX/1y+6o1W5XKLf/uplgaWuSK+mjQeqc387DwYbj61QWOjCoaJA1wl6RHuGGV -6ygpdAO1l8o+2U8nuULHW5lx+1BtMG5ytAXy9dWPercs5L8gh1IRNCVXWKsQCCWg -iG67nErFV5iRFLuAIX7ixLKJ5MGp/fVKUI9V1EViM2GUU46PVAPhhlZ1qcygjbZ5 -CelBnQ/XvGof5b4zm4eEgCc0ZkqsQDeS5jPjTtES8/y5WEKqbyijmvx2P40nuO/d -aTxNretMwaptWzu+WXHih0WG2Sq85m41070xsIMEwlqSfdiOOPdax6393NJgkdM7 -5NKC3+pzcHK1S1+x/Guawv0NAgMBAAGjNTAzMA4GA1UdDwEB/wQEAwIFIDATBgNV +dDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ1uJICLkmoQoP9DPbrZ +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 -----END CERTIFICATE----- diff --git a/config/testdata/self-signed-client.key b/config/testdata/self-signed-client.key index 4e4b2c2e..b00231db 100644 --- a/config/testdata/self-signed-client.key +++ b/config/testdata/self-signed-client.key @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -vOJ7/LvbOa8BlIMsprB2rz3PDSUSaIw= +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 +5b8HKx/a57sFIBJ6h9JnanmRIsEr -----END PRIVATE KEY----- diff --git a/config/testdata/server.crt b/config/testdata/server.crt index 1b86f58f..4e1e742c 100644 --- a/config/testdata/server.crt +++ b/config/testdata/server.crt @@ -1,33 +1,33 @@ -----BEGIN CERTIFICATE----- -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 -9Dnm1DebturSQQEOuX5rP15lG1I= +A1UdIwQYMBaAFKHDWkn86+tlhyjbNhjW9TAus5STMCAGA1UdEQQZMBeCCWxvY2Fs +aG9zdIcEfwAAAYcEfwAAADANBgkqhkiG9w0BAQsFAAOCAgEALxEIe3QFoh3SP5ay +Lg6kAx+TelDc6pYF0OTdvqO0s7oifCiHXy2twJn9VIT743StWo1UC1w6d0OuOELH +05t9UiFQF+TslA7LdbF6O/T083lM5UscSfKd3yblE5kVLaUpbHv8HQjQld1nG73k +aq87NFJTtgyCrUwXNpytMmw6rOban3imqztBGCYocXiyNWv4kCDGBN9k+ZBw5Hz+ +/q5pexzBp4G9NlERb0zzXpUws6muR2Jy0SpI28qtikue/gGet1SxYOyTD+OKWhKT +tqV5+l7ny99wDPGkphu1INDq62A83V51XYJI7Ezl/WY+ZwVI6s4WhvgplmQOcOjt +J+k8AjPe450InHbLFICBYy3elrTRQXaBDS39FE3byxZM/zFmpuusautcNY8IeXIG +cx+yZnKPZ/X2uXBFPh3xyAkxQQKsM5RL3vJuwS1RuXSVxjNbXL7I4i6DVTyvB6X4 +09/iSo+6MvA9IjQAJ+YfO3j/aJjMccpuWnfpoYlRFhn98Z2lVqR1oFrZSNLcd8cN +TrOB/LThIb5IV5YRZqczVnCpd+WDNvEetvmZO9bbD7wXAicmy/8C6AP2ebWY02VK +S6jJW3WaI/Lm55QqqmCm+LR07l38DL5s1pOhkkQvHDadY9TEKyUzlo12XJqX67fQ +qBQYluDmYrFalbx/ui0UXkC3lGM= -----END CERTIFICATE----- diff --git a/config/testdata/server.key b/config/testdata/server.key index 678da7b1..513ecba0 100644 --- a/config/testdata/server.key +++ b/config/testdata/server.key @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -Rri7hsjysanKPyaPM1oofbRyWApMyRo= +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 +GEyClFAiIMo4TbtgzEJabziLLPKucA== -----END PRIVATE KEY----- diff --git a/config/testdata/tls-ca-chain.pem b/config/testdata/tls-ca-chain.pem index b67023a7..49ed406b 100644 --- a/config/testdata/tls-ca-chain.pem +++ b/config/testdata/tls-ca-chain.pem @@ -1,67 +1,67 @@ -----BEGIN CERTIFICATE----- -MIIF1DCCA7ygAwIBAgIRAMMSh5NoexSCjSvDRf1fpgIwDQYJKoZIhvcNAQELBQAw +MIIF1DCCA7ygAwIBAgIRAOizkDX0s4ogKGqs7xBHWCowDQYJKoZIhvcNAQELBQAw ajELMAkGA1UEBhMCVVMxEzARBgNVBAoTClByb21ldGhldXMxKTAnBgNVBAsTIFBy b21ldGhldXMgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQDExJQcm9tZXRo -ZXVzIFJvb3QgQ0EwIBcNMjIwNzA4MDkxNTA2WhgPMjA3MjA2MjUwOTE1MDZaMGkx +ZXVzIFJvb3QgQ0EwIBcNMjYwNDI0MTg0ODIxWhgPMjA3NjA0MTExODQ4MjFaMGkx CzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpQcm9tZXRoZXVzMSkwJwYDVQQLEyBQcm9t ZXRoZXVzIENlcnRpZmljYXRlIEF1dGhvcml0eTEaMBgGA1UEAxMRUHJvbWV0aGV1 -cyBUTFMgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXtUbZhHR2 -xElyGJ+BwcZh4hm4dh1OhlJ6g98H2rEOK6bBxeO5YZnthfCnHI6WYN270ylusUc6 -JVkuU/1PO7NLYsl1D4ZIrRKQBWfg88BYrDO38HUkrm4aohlpT0+f7SiA7eRl1Mb5 -x6fi5BAVE5wnQJTE8VPBU+lXJB+SfZEixu+o1PlxVAdMYPAu1Yijakr1lDuZex+/ -j/700mihSAcwOvJ/+p4u2WNj0CMvQWiV5+VBZYrfpRN4/201FoyWILIv3HLq5OKp -Bpl/TvJ4J8oG1Cbzjm52qLgUOvHkAJ0I04DxWWywHF0VRumwLSqae0xo+KPPijj7 -bdnCx+vy37PbFOghzKzSIbPuccfKivVpChgy9n0kkgQhm9cgFE5SBuO6jfRwto0g -drSOMIzyXELDG0h0nB2gsPUHjD/OD1DT0VsW/9xXOPBfVgtPFn5LoZ8ninAFmk2r -ZiRJhCXhh+Rlw2F/s2STP66RnUGVdfP2syV+UlgJlE7EPE8cDbyfQqg7FTflq+t+ -HgXFCAkJ4S34+/qCbGv3DlbnC1lq+FiVwexm1TcfL/lYfhPr/J6VoeFZw4bjTPNa -jUILpsXv6IQzgPfCBxeZC6dDkK1D0cEXAqRRYKEFxdLnMjBcUZlWUV9uTuk01fDc -58bmlHt5sEqhcdUqHrR5PdoWJVOSbFwYBwIDAQABo3QwcjAOBgNVHQ8BAf8EBAMC -AqQwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTG -mh4eYNPmKKXi3dSJIs18ivSv8zAfBgNVHSMEGDAWgBRJPrEOm2ZrMgr9AFTz9LZy -0fDNNjANBgkqhkiG9w0BAQsFAAOCAgEAoc0OImcyyKSbVK63QA8VmD2o9Xr7abxX -o+f+QXWDqKAlNDAuXLYBjHMCc9YFsxXa9XkuKZeIxzop4h9iGG+fxMVPTx3T0gTm -MAuHcPka10z4Gy6ZxLzDmxJPkJ46b1n0K2fsv9XshzsHERz3VavwHXbC5mBo1CwI -6xLLtTWMuJdoyt0261D7Dat1JAFIWm2j+kxGvyIP0gNtRsUKOFA22Tlt42sEYnXa -7wmY7b15rndG69Xg9ZiVI5Mb/10gDJQcym23PXRn+JEgssE+WcYhll8f/LRmD49v -ZlBBD1dVoc9JyrgT+An+2Z8lE6wCSPqWSwhzvBW4dyB/u7Jn23dlV1SwJR8x/IaW -j/DhCELNqD6cSlRK3yjE/a2/iK0F6pNrVgKDY+/9uwFxwkjIRwqfcFtT6YpZ33mg -kSdTTbYpeg3XkLYZayE3ntzEhooyQdrJR6YyFVwsgcBCkeLrEbC7y/AG1MQEdKsZ -i3q730vztGQBR1ymPwgbB6qzGOXhmnhJHnQjeP2CJWnzDeOh2Vs4CxLAQZJ/dhYd -qrbYPAT8FJkp2PvoJP8zpmD7a8QC+6Gr17kl9OupPQrIIfxCXYZKDdGOlkDSUC16 -6y0E1WZnI+LVbQB1M584lB2/8jU4xqMqUPfoIcbjkjih9nvVA6t547527MeeTvXT -0ig2QvMFWMw= +cyBUTFMgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCXSG9mZo9J +FAZ0pmrFbvM9m6pUAyxQU1k4GCgad66Xfk6Urwce3wW4Z//k4zMSP1yXJD0kX+ng +anLjUvbycK4bEI1q8Rk2tySLQSHjk9g8c/5zQQ+Mk191d/6Ecz7uotaTS3gFnTOO +qMiKw+WxscSJKMGwmCiEBjgrgvd6qtqnnF1Vjwt3aekhLR+F9cSwym593piHfmqS +YAg3ukenmjnz1f2C4U+Pk+3VkcQnDY0VBfrfN8dXR2gwBjSCtLaNEuomxRGtmAZd +vlCLON/m0pAnrYHmedmLdNH0ReBPsl7VmFab8E8PUIISFeqfTw1nF2pVPfHbD4Qi +g7kF5lHfg51EEeLLNWVswD/2Le08j1BTHMlvAyGQd2k1/l8NuWB0pMnVY688VlrP +ynKcpfbJAnG/mh8gOfithMLbgSsz0U6ciOxnIFd64BaUc3ImGJTQLMN5VWk/+JFx +S1iVtkUmhuPb/gdDyxs5mRLcpV8i3fvYwfySxtJVwE5IyMvQVD8e+5BJ5Qq3Uh74 +OHW4+2yEQKjg59+iZiEdaNK7MToh+scWK1EXTkE7pisYOWx/8FPo6HtnuZo/y4Gd +xYXpozacjAm7y2wReWNOGEZOsEunj3I8Yua4pnawAUjJdrU8X8k1BqkYYjFMrDzc +tu+R7KbatjZSRSz+wsnI30/PNKpMwhSXGQIDAQABo3QwcjAOBgNVHQ8BAf8EBAMC +AqQwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSh +w1pJ/OvrZYco2zYY1vUwLrOUkzAfBgNVHSMEGDAWgBRMMd2+LWB86k+TAERGO2KY +48LpajANBgkqhkiG9w0BAQsFAAOCAgEAaU9K3jI7oV6fBs5DZDPo95IGBVa6LGJY +UfNtsoGv8f9R/om3rGmy89L0TNXI+XBR1VfSWri1L0VnoWDSpEgmuc5HXAAgRlPA +CJzFiHoaCTTeUcAAA7dualiXhEUunWRlvLXij6Ij3PMGFMmtrXNPhYMCd/4TSYIW +21CqRT6Aqo/5UewgkQ4gUvljUlECbIOS7sUaCMmBVKn8F+utgyCq3k+Fm6Gj7YNC +CzEsDxbWES4IIGYNKkvkTveEhYjgtTkW/CBAqCQT+z7yYg2xy+Yd6mwHzqPwifPB +fKsiNFbgat3OXQ9uwf7qhxScjvijO6Zx65m+VGVNdUPRK1S8q0VoCJss1O2RTJIB +RMIBy3c3hdAgd1yNXScgzclkjlQivZpNmUMO4peg7JOQxVprT43QreJSDieAkLnF +bBkpGO6nDWe8cU53QaLRMCDPIS+/5L1qUhzIFRsWc7fmVHEW5mvD9uaA39wPBG/o +DgaR4eXqR6guRT35K6H33r5fdLtZrYgOoqMU7D8n1l+mH2glrD1qutk2YdpK8+X4 +uJ0yvJSc1cElqTwmsSVkcvi+YrvMt106ESwK3eTrpe2zlVoZ6N5PciGhrE9CR7Ft ++LRPEqPbliogvn9KIhHdGomtmHujTjnfrrUuXi05ZTPTc4zNw+EcmMpLhVQo2umL +uZIh4OcAyQw= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -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 -aOK9l5wSyyqPfkHybKvT6z9pqWUchJsz +TDHdvi1gfOpPkwBERjtimOPC6WowDQYJKoZIhvcNAQELBQADggIBAEZ5UPCsUlzN +vpHpBDOCemfr/KxY8CPgQQSvoNwSqquhXoN71Xm47ioyjbzHUtNcb9uyJkOWQSYE +Dus3ubNrSCjPMRCYsW9ElMfdaiMczpu5bL0xBbMCE1PLKe39LhjimhP52YYhL8+Q +GymLxJitGj+OgHBHMBjBXMufpBCYhS+DEChdIDOroljAtmCguSHpkMVtBhyccEcM +5D5lKgYDdhcbaANj7T0iRhLGhHbyfSYW7n7GrL+0WyPEZkpJmY5WI2eCfppnfn4D +7+8uT/36x0iVVCfQqoT+vQoZcFszSzpwQLbfhLoUPN+ysxM0/uy2XRO0HBs60QBN +zXDPAIoB8IHUj46a4CAcX6eoDde7gcI+b8g2W6ZOW/3CGEUTyhBICvO+BNv1JEqa +JeHtqjf9eo27cKSoVbfUVaKBkMaNZVcSisd9U0iMD1o+GK/ke+ghXktcSFMaehLp +c7FnFRdGdOvHS/jaO/KGc7BP3ISrIIKWVBFBULzq4u4VhoColZbBo0uqx8tLLSVN +NRClcmhX6XRqOeahqnKvqcg1NSx/n4M8pL+m1mHVuuc3fPCCZZhnfqbyeve3gd5f +6XYFiZGDtctkyqQ1UN5ZNd2qm1gxjl0qHorSIdWv9cUnKur4H5mhrXgfx832vpmW +97i7ACZGnUezDYS6j6TtJwjefpz/Jo0d -----END CERTIFICATE-----