Skip to content

Commit fa13623

Browse files
committed
[FAB-4874] admins must be members
This change set ensures that the certificate of an MSP admin is also a valid member of that MSP according to that MSP's validation rules (including expiration and OUs). Change-Id: I520e36b5a8def564cd5dd2481d726bff5cb01870 Signed-off-by: Alessandro Sorniotti <[email protected]>
1 parent 735be85 commit fa13623

File tree

18 files changed

+203
-76
lines changed

18 files changed

+203
-76
lines changed

bddtests/steps/bootstrap_util.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,9 @@ class PathType(Enum):
824824

825825

826826
def getMSPConfig(org, directory):
827-
adminCerts = [org.getCertAsPEM()]
827+
# CA certificates can't be admins of an MSP
828+
# adminCerts = [org.getCertAsPEM()]
829+
adminCerts = []
828830
# Find the mspAdmin Tuple for org and add to admincerts folder
829831
for pnt, cert in [(nat, cert) for nat, cert in directory.ordererAdminTuples.items() if
830832
org.name == nat.organization and "configadmin" in nat.nodeName.lower()]:

common/tools/cryptogen/msp/generator.go

+36-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"io"
2626

2727
"github.com/hyperledger/fabric/bccsp"
28+
"github.com/hyperledger/fabric/bccsp/factory"
2829
"github.com/hyperledger/fabric/common/tools/cryptogen/ca"
2930
"github.com/hyperledger/fabric/common/tools/cryptogen/csp"
3031
)
@@ -66,14 +67,31 @@ func GenerateLocalMSP(baseDir, name string, sans []string, rootCA *ca.CA) error
6667
}
6768

6869
// write artifacts to MSP folders
69-
folders := []string{"admincerts", "cacerts"}
70+
71+
// the CA certificate goes into cacerts
72+
folders := []string{"cacerts"}
7073
for _, folder := range folders {
7174
err = x509Export(filepath.Join(mspDir, folder, x509Filename(rootCA.Name)), rootCA.SignCert)
7275
if err != nil {
7376
return err
7477
}
7578
}
7679

80+
// the signing identity goes into admincerts.
81+
// This means that the signing identity
82+
// of this MSP is also an admin of this MSP
83+
// NOTE: the admincerts folder is going to be
84+
// cleared up anyway by copyAdminCert, but
85+
// we leave a valid admin for now for the sake
86+
// of unit tests
87+
folders = []string{"admincerts"}
88+
for _, folder := range folders {
89+
err = x509Export(filepath.Join(mspDir, folder, x509Filename(rootCA.Name)), cert)
90+
if err != nil {
91+
return err
92+
}
93+
}
94+
7795
// write artifacts to TLS folder
7896
err = x509Export(filepath.Join(tlsDir, "ca.crt"), rootCA.SignCert)
7997
if err != nil {
@@ -99,7 +117,7 @@ func GenerateVerifyingMSP(baseDir string, rootCA *ca.CA) error {
99117
err := createFolderStructure(baseDir)
100118
if err == nil {
101119
// write MSP cert to appropriate folders
102-
folders := []string{"admincerts", "cacerts", "signcerts"}
120+
folders := []string{"cacerts", "signcerts"}
103121
for _, folder := range folders {
104122
err = x509Export(filepath.Join(baseDir, folder, x509Filename(rootCA.Name)), rootCA.SignCert)
105123
if err != nil {
@@ -108,6 +126,22 @@ func GenerateVerifyingMSP(baseDir string, rootCA *ca.CA) error {
108126
}
109127
}
110128

129+
// create a throwaway cert to act as an admin cert
130+
// NOTE: the admincerts folder is going to be
131+
// cleared up anyway by copyAdminCert, but
132+
// we leave a valid admin for now for the sake
133+
// of unit tests
134+
bcsp := factory.GetDefault()
135+
priv, err := bcsp.KeyGen(&bccsp.ECDSAP256KeyGenOpts{Temporary: true})
136+
ecPubKey, err := csp.GetECPublicKey(priv)
137+
if err != nil {
138+
return err
139+
}
140+
_, err = rootCA.SignCertificate(filepath.Join(baseDir, "admincerts"), rootCA.Name, []string{""}, ecPubKey)
141+
if err != nil {
142+
return err
143+
}
144+
111145
return nil
112146
}
113147

msp/msp_test.go

+16
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,22 @@ func TestValidateCAIdentity(t *testing.T) {
269269
assert.Error(t, err)
270270
}
271271

272+
func TestBadAdminIdentity(t *testing.T) {
273+
conf, err := GetLocalMspConfig("testdata/badadmin", nil, "DEFAULT")
274+
assert.NoError(t, err)
275+
276+
thisMSP, err := NewBccspMsp()
277+
assert.NoError(t, err)
278+
ks, err := sw.NewFileBasedKeyStore(nil, filepath.Join("testdata/badadmin", "keystore"), true)
279+
assert.NoError(t, err)
280+
csp, err := sw.New(256, "SHA2", ks)
281+
assert.NoError(t, err)
282+
thisMSP.(*bccspmsp).bccsp = csp
283+
284+
err = thisMSP.Setup(conf)
285+
assert.Error(t, err)
286+
}
287+
272288
func TestValidateAdminIdentity(t *testing.T) {
273289
caID := getIdentity(t, admincerts)
274290

msp/mspimpl.go

+13
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,16 @@ func (msp *bccspmsp) Setup(conf1 *m.MSPConfig) error {
439439
return err
440440
}
441441

442+
// make sure that admins are valid members as well
443+
// this way, when we validate an admin MSP principal
444+
// we can simply check for exact match of certs
445+
for i, admin := range msp.admins {
446+
err = admin.Validate()
447+
if err != nil {
448+
return fmt.Errorf("admin %d is invalid, validation error %s", i, err)
449+
}
450+
}
451+
442452
return nil
443453
}
444454

@@ -593,6 +603,9 @@ func (msp *bccspmsp) SatisfiesPrincipal(id Identity, principal *m.MSPPrincipal)
593603
// id is exactly one of our admins
594604
for _, admincert := range msp.admins {
595605
if bytes.Equal(id.(*identity).cert.Raw, admincert.(*identity).cert.Raw) {
606+
// we do not need to check whether the admin is a valid identity
607+
// according to this MSP, since we already check this at Setup time
608+
// if there is a match, we can just return
596609
return nil
597610
}
598611
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICIjCCAcigAwIBAgIBATAKBggqhkjOPQQDAjApMQwwCgYDVQQKDANDT1AxDDAK
3+
BgNVBAsMA0NPUDELMAkGA1UEAwwCQ0EwHhcNMTcwNjIwMDkwOTQwWhcNMzcwNjE1
4+
MDkwOTQwWjA6MQwwCgYDVQQKDANDT1AxDDAKBgNVBAsMA0NPUDENMAsGA1UECwwE
5+
Q09QMTENMAsGA1UEAwwEQ09QMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHaO
6+
/lWmVlTHbGlYcRxKiM3fq4aYumXSKPazeGVYHhfE19m20pJOgiHSqST40dY2KY7z
7+
sSlbRdVK7isb86RWz0Ojgc8wgcwwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMC
8+
BaAwMwYJYIZIAYb4QgENBCYWJE9wZW5TU0wgR2VuZXJhdGVkIENsaWVudCBDZXJ0
9+
aWZpY2F0ZTAdBgNVHQ4EFgQUzJvC4p2/qAJOaV9YLKP3WXAtQ98wHwYDVR0jBBgw
10+
FoAUBeUxuEtl5Cul1bUlFut6aTUzdnUwDgYDVR0PAQH/BAQDAgXgMCcGA1UdJQQg
11+
MB4GCCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwEwCgYIKoZIzj0EAwIDSAAw
12+
RQIgAJ9r6JU15ZHd1HR+gy3jOE1f3+2YGeoUnmFDgIBvHHoCIQDF7NR1gbJgcm/U
13+
xFnZpFxlRp7+JjmhBHj/bnllE0x1gQ==
14+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICIjCCAcigAwIBAgIBAjAKBggqhkjOPQQDAjApMQwwCgYDVQQKDANDT1AxDDAK
3+
BgNVBAsMA0NPUDELMAkGA1UEAwwCQ0EwHhcNMTcwNjIwMDkwOTQwWhcNMzcwNjE1
4+
MDkwOTQwWjA6MQwwCgYDVQQKDANDT1AxDDAKBgNVBAsMA0NPUDENMAsGA1UECwwE
5+
Q09QMjENMAsGA1UEAwwEQ09QMjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABA9X
6+
Y4AsHRMAfrCptswm01BU3ejzZIOCM81bIKSVyByCC4CNRUH+Cpi28I3hvd06Klqo
7+
x5ev1wSGNpy/STWfJHKjgc8wgcwwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMC
8+
BaAwMwYJYIZIAYb4QgENBCYWJE9wZW5TU0wgR2VuZXJhdGVkIENsaWVudCBDZXJ0
9+
aWZpY2F0ZTAdBgNVHQ4EFgQURJZ2HHiYHMsfkGKfad/tyNQ2hPkwHwYDVR0jBBgw
10+
FoAUBeUxuEtl5Cul1bUlFut6aTUzdnUwDgYDVR0PAQH/BAQDAgXgMCcGA1UdJQQg
11+
MB4GCCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwEwCgYIKoZIzj0EAwIDSAAw
12+
RQIgbtZhiH3Y7X/JHkvJMqnza6WI6ImFEOo8Vltuxb5Ajt0CIQD2WM1PVR/LlTK+
13+
VuXjgxinGZ8WAI3TbTMdeS5XD1NuEQ==
14+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIBrTCCAVKgAwIBAgIJAK8/QQKPJc5dMAoGCCqGSM49BAMCMCkxDDAKBgNVBAoM
3+
A0NPUDEMMAoGA1UECwwDQ09QMQswCQYDVQQDDAJDQTAeFw0xNzA2MjAwOTA5NDBa
4+
Fw0zNzA2MTUwOTA5NDBaMCkxDDAKBgNVBAoMA0NPUDEMMAoGA1UECwwDQ09QMQsw
5+
CQYDVQQDDAJDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLVK0PcjQjZ/pUsW
6+
Y7NHYJSHaPrc7qY/NK9xfLZogZi1axlOz55k6xQH2LIUILffmzXMm3h391Bim3b9
7+
rPdsvjqjYzBhMB0GA1UdDgQWBBQF5TG4S2XkK6XVtSUW63ppNTN2dTAfBgNVHSME
8+
GDAWgBQF5TG4S2XkK6XVtSUW63ppNTN2dTAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
9+
DwEB/wQEAwIBhjAKBggqhkjOPQQDAgNJADBGAiEAwhPOEE7bfSlDd0WglM1dNHTY
10+
hU2p/Lx0mgPha/5HW0UCIQCp6q+qL/OEP+mUms6C9nnMSu2eVDZQQ2MJgRNBVHjC
11+
cw==
12+
-----END CERTIFICATE-----
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIBrTCCAVKgAwIBAgIJAK8/QQKPJc5dMAoGCCqGSM49BAMCMCkxDDAKBgNVBAoM
3+
A0NPUDEMMAoGA1UECwwDQ09QMQswCQYDVQQDDAJDQTAeFw0xNzA2MjAwOTA5NDBa
4+
Fw0zNzA2MTUwOTA5NDBaMCkxDDAKBgNVBAoMA0NPUDEMMAoGA1UECwwDQ09QMQsw
5+
CQYDVQQDDAJDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLVK0PcjQjZ/pUsW
6+
Y7NHYJSHaPrc7qY/NK9xfLZogZi1axlOz55k6xQH2LIUILffmzXMm3h391Bim3b9
7+
rPdsvjqjYzBhMB0GA1UdDgQWBBQF5TG4S2XkK6XVtSUW63ppNTN2dTAfBgNVHSME
8+
GDAWgBQF5TG4S2XkK6XVtSUW63ppNTN2dTAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
9+
DwEB/wQEAwIBhjAKBggqhkjOPQQDAgNJADBGAiEAwhPOEE7bfSlDd0WglM1dNHTY
10+
hU2p/Lx0mgPha/5HW0UCIQCp6q+qL/OEP+mUms6C9nnMSu2eVDZQQ2MJgRNBVHjC
11+
cw==
12+
-----END CERTIFICATE-----

msp/testdata/badadmin/config.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Copyright IBM Corp. All Rights Reserved.
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
#
5+
6+
OrganizationalUnitIdentifiers:
7+
- Certificate: "cacerts/cacert.pem"
8+
OrganizationalUnitIdentifier: "COP1"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-----BEGIN EC PRIVATE KEY-----
2+
MHcCAQEEIAGR4/FR6CVRgwG4gqim4CKKd5NH+CbDSQdd9YD5zqVJoAoGCCqGSM49
3+
AwEHoUQDQgAEdo7+VaZWVMdsaVhxHEqIzd+rhpi6ZdIo9rN4ZVgeF8TX2bbSkk6C
4+
IdKpJPjR1jYpjvOxKVtF1UruKxvzpFbPQw==
5+
-----END EC PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICIjCCAcigAwIBAgIBATAKBggqhkjOPQQDAjApMQwwCgYDVQQKDANDT1AxDDAK
3+
BgNVBAsMA0NPUDELMAkGA1UEAwwCQ0EwHhcNMTcwNjIwMDkwOTQwWhcNMzcwNjE1
4+
MDkwOTQwWjA6MQwwCgYDVQQKDANDT1AxDDAKBgNVBAsMA0NPUDENMAsGA1UECwwE
5+
Q09QMTENMAsGA1UEAwwEQ09QMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHaO
6+
/lWmVlTHbGlYcRxKiM3fq4aYumXSKPazeGVYHhfE19m20pJOgiHSqST40dY2KY7z
7+
sSlbRdVK7isb86RWz0Ojgc8wgcwwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMC
8+
BaAwMwYJYIZIAYb4QgENBCYWJE9wZW5TU0wgR2VuZXJhdGVkIENsaWVudCBDZXJ0
9+
aWZpY2F0ZTAdBgNVHQ4EFgQUzJvC4p2/qAJOaV9YLKP3WXAtQ98wHwYDVR0jBBgw
10+
FoAUBeUxuEtl5Cul1bUlFut6aTUzdnUwDgYDVR0PAQH/BAQDAgXgMCcGA1UdJQQg
11+
MB4GCCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwEwCgYIKoZIzj0EAwIDSAAw
12+
RQIgAJ9r6JU15ZHd1HR+gy3jOE1f3+2YGeoUnmFDgIBvHHoCIQDF7NR1gbJgcm/U
13+
xFnZpFxlRp7+JjmhBHj/bnllE0x1gQ==
14+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
-----BEGIN CERTIFICATE-----
2-
MIICjDCCAjKgAwIBAgIUBEVwsSx0TmqdbzNwleNBBzoIT0wwCgYIKoZIzj0EAwIw
3-
fzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNh
4-
biBGcmFuY2lzY28xHzAdBgNVBAoTFkludGVybmV0IFdpZGdldHMsIEluYy4xDDAK
5-
BgNVBAsTA1dXVzEUMBIGA1UEAxMLZXhhbXBsZS5jb20wHhcNMTYxMTExMTcwNzAw
6-
WhcNMTcxMTExMTcwNzAwWjBjMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGgg
7-
Q2Fyb2xpbmExEDAOBgNVBAcTB1JhbGVpZ2gxGzAZBgNVBAoTEkh5cGVybGVkZ2Vy
8-
IEZhYnJpYzEMMAoGA1UECxMDQ09QMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
9-
HBuKsAO43hs4JGpFfiGMkB/xsILTsOvmN2WmwpsPHZNL6w8HWe3xCPQtdG/XJJvZ
10-
+C756KEsUBM3yw5PTfku8qOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYw
11-
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFOFC
12-
dcUZ4es3ltiCgAVDoyLfVpPIMB8GA1UdIwQYMBaAFBdnQj2qnoI/xMUdn1vDmdG1
13-
nEgQMCUGA1UdEQQeMByCCm15aG9zdC5jb22CDnd3dy5teWhvc3QuY29tMAoGCCqG
14-
SM49BAMCA0gAMEUCIDf9Hbl4xn3z4EwNKmilM9lX2Fq4jWpAaRVB97OmVEeyAiEA
15-
25aDPQHGGq2AvhKT0wvt08cX1GTGCIbfmuLpMwKQj38=
2+
MIICIjCCAcigAwIBAgIBATAKBggqhkjOPQQDAjApMQwwCgYDVQQKDANDT1AxDDAK
3+
BgNVBAsMA0NPUDELMAkGA1UEAwwCQ0EwHhcNMTcwNjIwMDkwOTQwWhcNMzcwNjE1
4+
MDkwOTQwWjA6MQwwCgYDVQQKDANDT1AxDDAKBgNVBAsMA0NPUDENMAsGA1UECwwE
5+
Q09QMTENMAsGA1UEAwwEQ09QMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHaO
6+
/lWmVlTHbGlYcRxKiM3fq4aYumXSKPazeGVYHhfE19m20pJOgiHSqST40dY2KY7z
7+
sSlbRdVK7isb86RWz0Ojgc8wgcwwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMC
8+
BaAwMwYJYIZIAYb4QgENBCYWJE9wZW5TU0wgR2VuZXJhdGVkIENsaWVudCBDZXJ0
9+
aWZpY2F0ZTAdBgNVHQ4EFgQUzJvC4p2/qAJOaV9YLKP3WXAtQ98wHwYDVR0jBBgw
10+
FoAUBeUxuEtl5Cul1bUlFut6aTUzdnUwDgYDVR0PAQH/BAQDAgXgMCcGA1UdJQQg
11+
MB4GCCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwEwCgYIKoZIzj0EAwIDSAAw
12+
RQIgAJ9r6JU15ZHd1HR+gy3jOE1f3+2YGeoUnmFDgIBvHHoCIQDF7NR1gbJgcm/U
13+
xFnZpFxlRp7+JjmhBHj/bnllE0x1gQ==
1614
-----END CERTIFICATE-----
+10-13
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
-----BEGIN CERTIFICATE-----
2-
MIICYjCCAgmgAwIBAgIUB3CTDOU47sUC5K4kn/Caqnh114YwCgYIKoZIzj0EAwIw
3-
fzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNh
4-
biBGcmFuY2lzY28xHzAdBgNVBAoTFkludGVybmV0IFdpZGdldHMsIEluYy4xDDAK
5-
BgNVBAsTA1dXVzEUMBIGA1UEAxMLZXhhbXBsZS5jb20wHhcNMTYxMDEyMTkzMTAw
6-
WhcNMjExMDExMTkzMTAwWjB/MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZv
7-
cm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEChMWSW50ZXJuZXQg
8-
V2lkZ2V0cywgSW5jLjEMMAoGA1UECxMDV1dXMRQwEgYDVQQDEwtleGFtcGxlLmNv
9-
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKIH5b2JaSmqiQXHyqC+cmknICcF
10-
i5AddVjsQizDV6uZ4v6s+PWiJyzfA/rTtMvYAPq/yeEHpBUB1j053mxnpMujYzBh
11-
MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQXZ0I9
12-
qp6CP8TFHZ9bw5nRtZxIEDAfBgNVHSMEGDAWgBQXZ0I9qp6CP8TFHZ9bw5nRtZxI
13-
EDAKBggqhkjOPQQDAgNHADBEAiAHp5Rbp9Em1G/UmKn8WsCbqDfWecVbZPQj3RK4
14-
oG5kQQIgQAe4OOKYhJdh3f7URaKfGTf492/nmRmtK+ySKjpHSrU=
2+
MIIBrTCCAVKgAwIBAgIJAK8/QQKPJc5dMAoGCCqGSM49BAMCMCkxDDAKBgNVBAoM
3+
A0NPUDEMMAoGA1UECwwDQ09QMQswCQYDVQQDDAJDQTAeFw0xNzA2MjAwOTA5NDBa
4+
Fw0zNzA2MTUwOTA5NDBaMCkxDDAKBgNVBAoMA0NPUDEMMAoGA1UECwwDQ09QMQsw
5+
CQYDVQQDDAJDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLVK0PcjQjZ/pUsW
6+
Y7NHYJSHaPrc7qY/NK9xfLZogZi1axlOz55k6xQH2LIUILffmzXMm3h391Bim3b9
7+
rPdsvjqjYzBhMB0GA1UdDgQWBBQF5TG4S2XkK6XVtSUW63ppNTN2dTAfBgNVHSME
8+
GDAWgBQF5TG4S2XkK6XVtSUW63ppNTN2dTAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
9+
DwEB/wQEAwIBhjAKBggqhkjOPQQDAgNJADBGAiEAwhPOEE7bfSlDd0WglM1dNHTY
10+
hU2p/Lx0mgPha/5HW0UCIQCp6q+qL/OEP+mUms6C9nnMSu2eVDZQQ2MJgRNBVHjC
11+
cw==
1512
-----END CERTIFICATE-----

msp/testdata/badconfigou/config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55

66
OrganizationalUnitIdentifiers:
77
- Certificate: "cacerts/cacert.pem"
8-
OrganizationalUnitIdentifier: "COP2"
8+
OrganizationalUnitIdentifier: "COP1"
+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
-----BEGIN EC PRIVATE KEY-----
2-
MHcCAQEEIAsWwFunEzqz1Rh6nvD4MiPkKCtmoxzh3jTquG5MSbeLoAoGCCqGSM49
3-
AwEHoUQDQgAEHBuKsAO43hs4JGpFfiGMkB/xsILTsOvmN2WmwpsPHZNL6w8HWe3x
4-
CPQtdG/XJJvZ+C756KEsUBM3yw5PTfku8g==
2+
MHcCAQEEIAu4YO8nk0V76CpJLoAZlqXhUE3dpDnQgOkkKkhcUu4FoAoGCCqGSM49
3+
AwEHoUQDQgAED1djgCwdEwB+sKm2zCbTUFTd6PNkg4IzzVsgpJXIHIILgI1FQf4K
4+
mLbwjeG93ToqWqjHl6/XBIY2nL9JNZ8kcg==
55
-----END EC PRIVATE KEY-----
+12-14
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
-----BEGIN CERTIFICATE-----
2-
MIICjDCCAjKgAwIBAgIUBEVwsSx0TmqdbzNwleNBBzoIT0wwCgYIKoZIzj0EAwIw
3-
fzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNh
4-
biBGcmFuY2lzY28xHzAdBgNVBAoTFkludGVybmV0IFdpZGdldHMsIEluYy4xDDAK
5-
BgNVBAsTA1dXVzEUMBIGA1UEAxMLZXhhbXBsZS5jb20wHhcNMTYxMTExMTcwNzAw
6-
WhcNMTcxMTExMTcwNzAwWjBjMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGgg
7-
Q2Fyb2xpbmExEDAOBgNVBAcTB1JhbGVpZ2gxGzAZBgNVBAoTEkh5cGVybGVkZ2Vy
8-
IEZhYnJpYzEMMAoGA1UECxMDQ09QMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
9-
HBuKsAO43hs4JGpFfiGMkB/xsILTsOvmN2WmwpsPHZNL6w8HWe3xCPQtdG/XJJvZ
10-
+C756KEsUBM3yw5PTfku8qOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYw
11-
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFOFC
12-
dcUZ4es3ltiCgAVDoyLfVpPIMB8GA1UdIwQYMBaAFBdnQj2qnoI/xMUdn1vDmdG1
13-
nEgQMCUGA1UdEQQeMByCCm15aG9zdC5jb22CDnd3dy5teWhvc3QuY29tMAoGCCqG
14-
SM49BAMCA0gAMEUCIDf9Hbl4xn3z4EwNKmilM9lX2Fq4jWpAaRVB97OmVEeyAiEA
15-
25aDPQHGGq2AvhKT0wvt08cX1GTGCIbfmuLpMwKQj38=
2+
MIICIjCCAcigAwIBAgIBAjAKBggqhkjOPQQDAjApMQwwCgYDVQQKDANDT1AxDDAK
3+
BgNVBAsMA0NPUDELMAkGA1UEAwwCQ0EwHhcNMTcwNjIwMDkwOTQwWhcNMzcwNjE1
4+
MDkwOTQwWjA6MQwwCgYDVQQKDANDT1AxDDAKBgNVBAsMA0NPUDENMAsGA1UECwwE
5+
Q09QMjENMAsGA1UEAwwEQ09QMjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABA9X
6+
Y4AsHRMAfrCptswm01BU3ejzZIOCM81bIKSVyByCC4CNRUH+Cpi28I3hvd06Klqo
7+
x5ev1wSGNpy/STWfJHKjgc8wgcwwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMC
8+
BaAwMwYJYIZIAYb4QgENBCYWJE9wZW5TU0wgR2VuZXJhdGVkIENsaWVudCBDZXJ0
9+
aWZpY2F0ZTAdBgNVHQ4EFgQURJZ2HHiYHMsfkGKfad/tyNQ2hPkwHwYDVR0jBBgw
10+
FoAUBeUxuEtl5Cul1bUlFut6aTUzdnUwDgYDVR0PAQH/BAQDAgXgMCcGA1UdJQQg
11+
MB4GCCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwEwCgYIKoZIzj0EAwIDSAAw
12+
RQIgbtZhiH3Y7X/JHkvJMqnza6WI6ImFEOo8Vltuxb5Ajt0CIQD2WM1PVR/LlTK+
13+
VuXjgxinGZ8WAI3TbTMdeS5XD1NuEQ==
1614
-----END CERTIFICATE-----
+9-14
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
-----BEGIN CERTIFICATE-----
2-
MIICYjCCAgmgAwIBAgIUB3CTDOU47sUC5K4kn/Caqnh114YwCgYIKoZIzj0EAwIw
3-
fzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNh
4-
biBGcmFuY2lzY28xHzAdBgNVBAoTFkludGVybmV0IFdpZGdldHMsIEluYy4xDDAK
5-
BgNVBAsTA1dXVzEUMBIGA1UEAxMLZXhhbXBsZS5jb20wHhcNMTYxMDEyMTkzMTAw
6-
WhcNMjExMDExMTkzMTAwWjB/MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZv
7-
cm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEChMWSW50ZXJuZXQg
8-
V2lkZ2V0cywgSW5jLjEMMAoGA1UECxMDV1dXMRQwEgYDVQQDEwtleGFtcGxlLmNv
9-
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKIH5b2JaSmqiQXHyqC+cmknICcF
10-
i5AddVjsQizDV6uZ4v6s+PWiJyzfA/rTtMvYAPq/yeEHpBUB1j053mxnpMujYzBh
11-
MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQXZ0I9
12-
qp6CP8TFHZ9bw5nRtZxIEDAfBgNVHSMEGDAWgBQXZ0I9qp6CP8TFHZ9bw5nRtZxI
13-
EDAKBggqhkjOPQQDAgNHADBEAiAHp5Rbp9Em1G/UmKn8WsCbqDfWecVbZPQj3RK4
14-
oG5kQQIgQAe4OOKYhJdh3f7URaKfGTf492/nmRmtK+ySKjpHSrU=
15-
-----END CERTIFICATE-----
2+
MIIBdjCCARsCAQkwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxEzARBgNVBAgT
3+
CkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xHzAdBgNVBAoTFklu
4+
dGVybmV0IFdpZGdldHMsIEluYy4xDDAKBgNVBAsTA1dXVzEUMBIGA1UEAxMLZXhh
5+
bXBsZS5jb20wHhcNMTcwNjIwMDk1MTMwWhcNMzcwNjE1MDk1MTMwWjAOMQwwCgYD
6+
VQQKDANmb28wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARtvjEp4TscNO0Lj5+S
7+
vDOiWNA+lX1qeWvt1WruGyv9O2e5382h1wxWcy2h2gulc5Wx8mgw9RbMlLOtfEND
8+
UNBIMAoGCCqGSM49BAMCA0kAMEYCIQCUaOjl1reIpweZKeVl1VJxiV1+xyoT7QEs
9+
bFQBNL7QYQIhAIuIoWmtkgJRDEraEDniyEJ87unSrOdE0eLjGB0z0sAy
10+
-----END CERTIFICATE-----
+9-14
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
-----BEGIN CERTIFICATE-----
2-
MIICYjCCAgmgAwIBAgIUB3CTDOU47sUC5K4kn/Caqnh114YwCgYIKoZIzj0EAwIw
3-
fzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNh
4-
biBGcmFuY2lzY28xHzAdBgNVBAoTFkludGVybmV0IFdpZGdldHMsIEluYy4xDDAK
5-
BgNVBAsTA1dXVzEUMBIGA1UEAxMLZXhhbXBsZS5jb20wHhcNMTYxMDEyMTkzMTAw
6-
WhcNMjExMDExMTkzMTAwWjB/MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZv
7-
cm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEChMWSW50ZXJuZXQg
8-
V2lkZ2V0cywgSW5jLjEMMAoGA1UECxMDV1dXMRQwEgYDVQQDEwtleGFtcGxlLmNv
9-
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKIH5b2JaSmqiQXHyqC+cmknICcF
10-
i5AddVjsQizDV6uZ4v6s+PWiJyzfA/rTtMvYAPq/yeEHpBUB1j053mxnpMujYzBh
11-
MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQXZ0I9
12-
qp6CP8TFHZ9bw5nRtZxIEDAfBgNVHSMEGDAWgBQXZ0I9qp6CP8TFHZ9bw5nRtZxI
13-
EDAKBggqhkjOPQQDAgNHADBEAiAHp5Rbp9Em1G/UmKn8WsCbqDfWecVbZPQj3RK4
14-
oG5kQQIgQAe4OOKYhJdh3f7URaKfGTf492/nmRmtK+ySKjpHSrU=
15-
-----END CERTIFICATE-----
2+
MIIBdjCCARsCAQkwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxEzARBgNVBAgT
3+
CkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xHzAdBgNVBAoTFklu
4+
dGVybmV0IFdpZGdldHMsIEluYy4xDDAKBgNVBAsTA1dXVzEUMBIGA1UEAxMLZXhh
5+
bXBsZS5jb20wHhcNMTcwNjIwMDk1MTMwWhcNMzcwNjE1MDk1MTMwWjAOMQwwCgYD
6+
VQQKDANmb28wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARtvjEp4TscNO0Lj5+S
7+
vDOiWNA+lX1qeWvt1WruGyv9O2e5382h1wxWcy2h2gulc5Wx8mgw9RbMlLOtfEND
8+
UNBIMAoGCCqGSM49BAMCA0kAMEYCIQCUaOjl1reIpweZKeVl1VJxiV1+xyoT7QEs
9+
bFQBNL7QYQIhAIuIoWmtkgJRDEraEDniyEJ87unSrOdE0eLjGB0z0sAy
10+
-----END CERTIFICATE-----

0 commit comments

Comments
 (0)