2

Consider a keystore in which are loaded two duplicate CA Root certificates. They have the same Issuer/Subject DN and the same key.

The major difference is that one expires in 2019 and one expires in 2029. They do however differ as to fingerprint and serial numbers also.

I am told that the fields which differ are not used in validation and so either certificate will validate a personal cert further down the signer chain. At some point the earlier-issued cert will expire though and after that we should expect that one cert will properly validate a given personal certificate and the expired one will not. It is this period after the first cert expires and before the second one does with which I'm concerned.

Given that OpenSSL, Keytool, and IBM GSKit will happily allow these certs to coexist in the same jks or kdb file, how will they be resolved at run time?

I see several possibilities:

  1. Certs are resolved based on the order loaded into the keystore. If the newer cert is loaded first, personal certs validate even after the older cert expires. (Or the one loaded last depending on how the list is enumerated.) Load them in the opposite order, personal certs fail due to the expired root.
  2. Certs are resolved in undetermined order. Run-time behavior is non-deterministic.
  3. The certs are recognized as dupes and the one with the higher serial number (or other ordinal indicator) always prevails.

The specific certs which give rise to this question are provided below:

Key Size : 2048
Version : X509 V3
Serial : 3863b966
Issuer : "CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net"
Subject : "CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net"
Not Before : December 24, 1999 12:50:51 PM EST

Not After : December 24, 2019 1:20:51 PM EST

Public Key
    30 82 01 22 30 0D 06 09 2A 86 48 86 F7 0D 01 01
    01 05 00 03 82 01 0F 00 30 82 01 0A 02 82 01 01
    00 AD 4D 4B A9 12 86 B2 EA A3 20 07 15 16 64 2A
    2B 4B D1 BF 0B 4A 4D 8E ED 80 76 A5 67 B7 78 40
    C0 73 42 C8 68 C0 DB 53 2B DD 5E B8 76 98 35 93
    8B 1A 9D 7C 13 3A 0E 1F 5B B7 1E CF E5 24 14 1E
    B1 81 A9 8D 7D B8 CC 6B 4B 03 F1 02 0C DC AB A5
    40 24 00 7F 74 94 A1 9D 08 29 B3 88 0B F5 87 77
    9D 55 CD E4 C3 7E D7 6A 64 AB 85 14 86 95 5B 97
    32 50 6F 3D C8 BA 66 0C E3 FC BD B8 49 C1 76 89
    49 19 FD C0 A8 BD 89 A3 67 2F C6 9F BC 71 19 60
    B8 2D E9 2C C9 90 76 66 7B 94 E2 AF 78 D6 65 53
    5D 3C D6 9C B2 CF 29 03 F9 2F A4 50 B2 D4 48 CE
    05 32 55 8A FD B2 64 4C 0E E4 98 07 75 DB 7F DF
    B9 08 55 60 85 30 29 F9 7B 48 A4 69 86 E3 35 3F
    1E 86 5D 7A 7A 15 BD EF 00 8E 15 22 54 17 00 90
    26 93 BC 0E 49 68 91 BF F8 47 D3 9D 95 42 C1 0E
    4D DF 6F 26 CF C3 18 21 62 66 43 70 D6 D5 C0 07
    E1 02 03 01 00 01
Public Key Type : RSA (1.2.840.113549.1.1.1)
Fingerprint : SHA1 : 
    80 1D 62 D0 7B 44 9D 5C 5C 03 5C 98 EA 61 FA 44
    3C 2A 58 FE
Fingerprint : MD5 : 
    BA 21 EA 20 D6 DD DB 8F C1 57 8B 40 AD A1 FC FC
Fingerprint : SHA256 : 
    D1 C3 39 EA 27 84 EB 87 0F 93 4F C5 63 4E 4A A9
    AD 55 05 01 64 01 F2 64 65 D3 7A 57 46 63 35 9F
Extensions
     (2.16.840.1.113730.1.1)
        Value 03 02 00 07
    AuthorityKeyIdentifier
      keyIdentifier:
    55 E4 81 D1 11 80 BE D8 89 B9 08 A3 31 F9 A1 24
    09 16 B9 70
      authorityIdentifier:
      authorityCertSerialNumber:
    SubjectKeyIdentifier
      keyIdentifier:
    55 E4 81 D1 11 80 BE D8 89 B9 08 A3 31 F9 A1 24
    09 16 B9 70
     (1.2.840.113533.7.65.0)
        Value
    30 0E 1B 08 56 35 2E 30 3A 34 2E 30 03 02 04 90
Signature Algorithm : SHA1WithRSASignature (1.2.840.113549.1.1.5)
Value
    59 47 AC 21 84 8A 17 C9 9C 89 53 1E BA 80 85 1A
    C6 3C 4E 3E B1 9C B6 7C C6 92 5D 18 64 02 E3 D3
    06 08 11 61 7C 63 E3 2B 9D 31 03 70 76 D2 A3 28
    A0 F4 BB 9A 63 73 ED 6D E5 2A DB ED 14 A9 2B C6
    36 11 D0 2B EB 07 8B A5 DA 9E 5C 19 9D 56 12 F5
    54 29 C8 05 ED B2 12 2A 8D F4 03 1B FF E7 92 10
    87 B0 3A B5 C3 9D 05 37 12 A3 C7 F4 15 B9 D5 A4
    39 16 9B 53 3A 23 91 F1 A8 82 A2 6A 88 68 C1 79
    02 22 BC AA A6 D6 AE DF B0 14 5F B8 87 D0 DD 7C
    7F 7B FF AF 1C CF E6 DB 07 AD 5E DB 85 9D D0 2B
    0D 33 DB 04 D1 E6 49 40 13 2B 76 FB 3E E9 9C 89
    0F 15 CE 18 B0 85 78 21 4F 6B 4F 0E FA 36 67 CD
    07 F2 FF 08 D0 E2 DE D9 BF 2A AF B8 87 86 21 3C
    04 CA B7 94 68 7F CF 3C E9 98 D7 38 FF EC C0 D9
    50 F0 2E 4B 58 AE 46 6F D0 2E C3 60 DA 72 55 72
    BD 4C 45 9E 61 BA BF 84 81 92 03 D1 D2 69 7C C5



Key Size : 2048
Version : X509 V3
Serial : 3863def8
Issuer : "CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net"
Subject : "CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net"
Not Before : December 24, 1999 12:50:51 PM EST

Not After : July 24, 2029 10:15:12 AM EDT

Public Key
    30 82 01 22 30 0D 06 09 2A 86 48 86 F7 0D 01 01
    01 05 00 03 82 01 0F 00 30 82 01 0A 02 82 01 01
    00 AD 4D 4B A9 12 86 B2 EA A3 20 07 15 16 64 2A
    2B 4B D1 BF 0B 4A 4D 8E ED 80 76 A5 67 B7 78 40
    C0 73 42 C8 68 C0 DB 53 2B DD 5E B8 76 98 35 93
    8B 1A 9D 7C 13 3A 0E 1F 5B B7 1E CF E5 24 14 1E
    B1 81 A9 8D 7D B8 CC 6B 4B 03 F1 02 0C DC AB A5
    40 24 00 7F 74 94 A1 9D 08 29 B3 88 0B F5 87 77
    9D 55 CD E4 C3 7E D7 6A 64 AB 85 14 86 95 5B 97
    32 50 6F 3D C8 BA 66 0C E3 FC BD B8 49 C1 76 89
    49 19 FD C0 A8 BD 89 A3 67 2F C6 9F BC 71 19 60
    B8 2D E9 2C C9 90 76 66 7B 94 E2 AF 78 D6 65 53
    5D 3C D6 9C B2 CF 29 03 F9 2F A4 50 B2 D4 48 CE
    05 32 55 8A FD B2 64 4C 0E E4 98 07 75 DB 7F DF
    B9 08 55 60 85 30 29 F9 7B 48 A4 69 86 E3 35 3F
    1E 86 5D 7A 7A 15 BD EF 00 8E 15 22 54 17 00 90
    26 93 BC 0E 49 68 91 BF F8 47 D3 9D 95 42 C1 0E
    4D DF 6F 26 CF C3 18 21 62 66 43 70 D6 D5 C0 07
    E1 02 03 01 00 01
Public Key Type : RSA (1.2.840.113549.1.1.1)
Fingerprint : SHA1 : 
    50 30 06 09 1D 97 D4 F5 AE 39 F7 CB E7 92 7D 7D
    65 2D 34 31
Fingerprint : MD5 : 
    EE 29 31 BC 32 7E 9A E6 E8 B5 F7 51 B4 34 71 90
Fingerprint : SHA256 : 
    6D C4 71 72 E0 1C BC B0 BF 62 58 0D 89 5F E2 B8
    AC 9A D4 F8 73 80 1E 0C 10 B9 C8 37 D2 1E B1 77
Extensions
    key usage: keyCertSign, cRLSign
        critical
    basicConstraints
        ca = true
        pathLen = 0
        critical
    SubjectKeyIdentifier
      keyIdentifier:
    55 E4 81 D1 11 80 BE D8 89 B9 08 A3 31 F9 A1 24
    09 16 B9 70
Signature Algorithm : SHA1WithRSASignature (1.2.840.113549.1.1.5)
Value
    3B 9B 8F 56 9B 30 E7 53 99 7C 7A 79 A7 4D 97 D7
    19 95 90 FB 06 1F CA 33 7C 46 63 8F 96 66 24 FA
    40 1B 21 27 CA E6 72 73 F2 4F FE 31 99 FD C8 0C
    4C 68 53 C6 80 82 13 98 FA B6 AD DA 5D 3D F1 CE
    6E F6 15 11 94 82 0C EE 3F 95 AF 11 AB 0F D7 2F
    DE 1F 03 8F 57 2C 1E C9 BB 9A 1A 44 95 EB 18 4F
    A6 1F CD 7D 57 10 2F 9B 04 09 5A 84 B5 6E D8 1D
    3A E1 D6 9E D1 6C 79 5E 79 1C 14 C5 E3 D0 4C 93
    3B 65 3C ED DF 3D BE A6 E5 95 1A C3 B5 19 C3 BD
    5E 5B BB FF 23 EF 68 19 CB 12 93 27 5C 03 2D 6F
    30 D0 1E B6 1A AC DE 5A F7 D1 AA A8 27 A6 FE 79
    81 C4 79 99 33 57 BA 12 B0 A9 E0 42 6C 93 CA 56
    DE FE 6D 84 0B 08 8B 7E 8D EA D7 98 21 C6 F3 E7
    3C 79 2F 5E 9C D1 4C 15 8D E1 EC 22 37 CC 9A 43
    0B 97 DC 80 90 8D B3 67 9B 6F 48 08 15 56 CF BF
    F1 2B 7C 5E 9A 76 E9 59 90 C5 7C 83 35 11 65 51


-----BEGIN CERTIFICATE-----
MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0xOTEy
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGA
vtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJFrlwMB0G
CSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEA
WUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQ
h7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18
f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfN
B/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy
vUxFnmG6v4SBkgPR0ml8xQ==
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3
MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub
j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo
U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
fF6adulZkMV8gzURZVE=
-----END CERTIFICATE-----

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.