Issue - Unable to verify certificate chain - CentOS7

As an aside, I don't think -purpose has value when checking certs known to be from Let's Encrypt. The openssl docs say

The supplied or "leaf" certificate must have extensions compatible with the supplied purpose and all other certificates must also be valid CA certificates.

We already know LE certs are fine for ssl servers. I'd be more worried of that option showing an error that doesn't exist due purely to an aged or faulty openssl.

5 Likes

Interesting update and good news!

I noticed something, the default fullchain.pem cert from LE doesn't have the actual root certificate that should be there.

Meaning, you can see the root cert is different in the bottom from the next one

:arrow_right:

-----BEGIN CERTIFICATE-----
MIIFQDCCBCigAwIBAgISA5MpHDgcI0KAVMZQqa+PKDX2MA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMjA3MDYwMDI1MjdaFw0yMjEwMDQwMDI1MjZaMB0xGzAZBgNVBAMT
EmlsbHVtaW8uY29uc3VsdGluZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAJeQQz2GsoJB/4wFwnI57fUufmZlDPQBVDkuDu0vXfTc7/L6RpjV0QIiIfEg
KMLQ9rOPF3BlvNuiPLyHvbRI/ce87q2xJeBX6xeAkDlGWIeyvmozMzgt0ruY5yqN
kKTAqiVTB/r5chCcR3va0ZtIuBJiZrApB/PPlrAhNcsn0wOoJjD6kIEPROOEtJ+a
0iEzAQfPre+K81o5snwE0jKnQotA2VLVqtnd/4NhArIVbAxg+v9V7XJHTQ4sqPwE
N4PCFoYArhuJYqisy9Pq9VPm3tzqWNTqp3XZihcykFs8WZY1rnZMB9KfYYgzVFFw
q7GgXtEfshqKVJJVRGNzUvRfvZECAwEAAaOCAmMwggJfMA4GA1UdDwEB/wQEAwIF
oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAd
BgNVHQ4EFgQUJnq13JxNVmJ3VizL6e9FgQ9ChjswHwYDVR0jBBgwFoAUFC6zF7dY
VsuuUAlA5h+vnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRw
Oi8vcjMuby5sZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNy
Lm9yZy8wMwYDVR0RBCwwKoIUKi5pbGx1bWlvLmNvbnN1bHRpbmeCEmlsbHVtaW8u
Y29uc3VsdGluZzBMBgNVHSAERTBDMAgGBmeBDAECATA3BgsrBgEEAYLfEwEBATAo
MCYGCCsGAQUFBwIBFhpodHRwOi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCCAQQGCisG
AQQB1nkCBAIEgfUEgfIA8AB2AN+lXqtogk8fbK3uuF9OPlrqzaISpGpejjsSwCBE
XCpzAAABgdEcsUAAAAQDAEcwRQIhAJL6T1keW2ggaUb1G/S7O4Zzq00TJ28gBQbw
rhdiYaOCAiBpYvRcGhlu2vwi08uAjLBnCJ5W+p6ziUKEK0Z9Xng8FQB2AEalVet1
+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABgdEcsWkAAAQDAEcwRQIgS9vP
Zo9N+VqueDRglbvNZgZlJHcr6cggHo9I8FlRGDoCIQDhCtlLwsKrBrU50HjO5xtA
wzSsB0ZaYRAvs9Jw9wVxOjANBgkqhkiG9w0BAQsFAAOCAQEAEo1CEldf3EzFpnit
FvUQrTnCHncMNcAeyjKqdId2FJOcG/himZCE3e/Xmm0zMGMqHCzvnhWoUDtnLiVv
uAmjDdvEeyRMJTIdulN6Nzv4sXgIRSjHExDJfVoWOQZGuY/w4DhnLyyDJC7jkCXg
8V/YH+2+y27mlv3yY0LUfgm3atXJPDsigDC6w9ujYZiRm+BtidYuV6Jm6xLPvajl
CpPCHGlwKD6Efm0E20U6dFTtRBKFFpeQJjsQAPxjh3vxpHPLm943SvLvjl//eHj9
dVUA1sGEdqYaQGXIFT/4m+HL845FN6I/jYKI12pZjagt0JawjJx0qCcoD5FWw8BL
4nFWyw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC
ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL
wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D
LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK
4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND
TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1
c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx
+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB
ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu
b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E
U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu
MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC
5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW
9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG
WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O
he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC
Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5
-----END CERTIFICATE-----

and here is another bundle I have created manually on Windows machine, simply copy to file and save and so on, and then combined leaf >> inter >> root into a single file

:arrow_right:

-----BEGIN CERTIFICATE-----
MIIFQDCCBCigAwIBAgISA5MpHDgcI0KAVMZQqa+PKDX2MA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMjA3MDYwMDI1MjdaFw0yMjEwMDQwMDI1MjZaMB0xGzAZBgNVBAMT
EmlsbHVtaW8uY29uc3VsdGluZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAJeQQz2GsoJB/4wFwnI57fUufmZlDPQBVDkuDu0vXfTc7/L6RpjV0QIiIfEg
KMLQ9rOPF3BlvNuiPLyHvbRI/ce87q2xJeBX6xeAkDlGWIeyvmozMzgt0ruY5yqN
kKTAqiVTB/r5chCcR3va0ZtIuBJiZrApB/PPlrAhNcsn0wOoJjD6kIEPROOEtJ+a
0iEzAQfPre+K81o5snwE0jKnQotA2VLVqtnd/4NhArIVbAxg+v9V7XJHTQ4sqPwE
N4PCFoYArhuJYqisy9Pq9VPm3tzqWNTqp3XZihcykFs8WZY1rnZMB9KfYYgzVFFw
q7GgXtEfshqKVJJVRGNzUvRfvZECAwEAAaOCAmMwggJfMA4GA1UdDwEB/wQEAwIF
oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAd
BgNVHQ4EFgQUJnq13JxNVmJ3VizL6e9FgQ9ChjswHwYDVR0jBBgwFoAUFC6zF7dY
VsuuUAlA5h+vnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRw
Oi8vcjMuby5sZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNy
Lm9yZy8wMwYDVR0RBCwwKoIUKi5pbGx1bWlvLmNvbnN1bHRpbmeCEmlsbHVtaW8u
Y29uc3VsdGluZzBMBgNVHSAERTBDMAgGBmeBDAECATA3BgsrBgEEAYLfEwEBATAo
MCYGCCsGAQUFBwIBFhpodHRwOi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCCAQQGCisG
AQQB1nkCBAIEgfUEgfIA8AB2AN+lXqtogk8fbK3uuF9OPlrqzaISpGpejjsSwCBE
XCpzAAABgdEcsUAAAAQDAEcwRQIhAJL6T1keW2ggaUb1G/S7O4Zzq00TJ28gBQbw
rhdiYaOCAiBpYvRcGhlu2vwi08uAjLBnCJ5W+p6ziUKEK0Z9Xng8FQB2AEalVet1
+pEgMLWiiWn0830RLEF0vv1JuIWr8vxw/m1HAAABgdEcsWkAAAQDAEcwRQIgS9vP
Zo9N+VqueDRglbvNZgZlJHcr6cggHo9I8FlRGDoCIQDhCtlLwsKrBrU50HjO5xtA
wzSsB0ZaYRAvs9Jw9wVxOjANBgkqhkiG9w0BAQsFAAOCAQEAEo1CEldf3EzFpnit
FvUQrTnCHncMNcAeyjKqdId2FJOcG/himZCE3e/Xmm0zMGMqHCzvnhWoUDtnLiVv
uAmjDdvEeyRMJTIdulN6Nzv4sXgIRSjHExDJfVoWOQZGuY/w4DhnLyyDJC7jkCXg
8V/YH+2+y27mlv3yY0LUfgm3atXJPDsigDC6w9ujYZiRm+BtidYuV6Jm6xLPvajl
CpPCHGlwKD6Efm0E20U6dFTtRBKFFpeQJjsQAPxjh3vxpHPLm943SvLvjl//eHj9
dVUA1sGEdqYaQGXIFT/4m+HL845FN6I/jYKI12pZjagt0JawjJx0qCcoD5FWw8BL
4nFWyw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----

The manual one worked fine with my web server!

       Valid: Certificate chain is verified.
Current time: 2022-07-06 23:00:18 UTC.
  Not before: 2022-07-06 00:25:27 UTC.
   Not after: 2022-10-04 00:25:26 UTC.
    Validity: 2 months, 29 days.
   Remaining: 2 months, 28 days, 1 hour, 25 minutes, 9 seconds.
Valid: web_service_certificate tests passed

Any idea what is that root they are using in the fullchain.pem?!

1 Like

First, an actual CA root should not be in a chain sent by a server. At best clients will ignore it and it just takes longer to send a longer chain. Maybe some clients will even reject it as invalid chain - I am not sure. That is not how this trust system works.

You could try removing the last cert from fullchain.pem and use that for your server.

It looks like your server is not tolerating the default "long chain" from Let's Encrypt. It contains your leaf and then two intermediates that can link to different roots. The second intermediate, which is the 3rd file in fullchain.pem, is a cross-signed cert issued by DST Root CA X3. It expired last Sept but is kept in place for compatibility with older Android devices. Numerous website servers send this long chain including this website.

It looks like your server is not allowing you to use that. It will limit what clients will trust your website. Whether that is a problem is for you to decide.

First though, make a new file with just the first 2 certs from fullchain.pem and ensure that works in your server. Then we can talk about the implications.

By the way, again, what is the server you are using?

10 Likes

Thanks for the explanation about that part with the two intermediates part, hence, it doesn't work until I make the manual tweak to get a complete fullchain with no expired certs.

This setup is for Illumio Microsegmentation PCE

1 Like

Can you point me to the config docs for that server? I looked but cannot find them.

That set of certs you created includes the root trust anchor. If your clients actually trust it without confirming in their own CA trust store then you may have been able to use a self-signed cert. Sending the anchor is unnecessary and defeats the purpose of client verifications of trust.

You have a "short chain" and you can read about its compatibility here.

As an overview of the short and long chains there is this topic

With certbot 1.12 you should be able to use the --preferred-chain 'ISRG Root X1' option so you get the short chain returned in fullchain.pem. Then, apparently, you need to add the ISRG Root X1 root trust anchor to satisfy your server. That is probably easier to create than shortening the long chain and adding the root trust anchor.

9 Likes

The default/long chain uses an expired root.
See:

Read more about that here:

You might want to use the short chain or switch to another free CA chain.

8 Likes

I found the below docs. Let's Encrypt is a public CA (not your private one). Based on these docs you should not be adding the ISRG root trust anchor. However, you may need to use the short chain.

You should probably ask illumio why the verification fails without the trust anchor. You can see their docs match what I have been describing about the client doing the final step and matching to their own CA store.

See the X509 section in this:

https://docs.illumio.com/core/21.5/Content/Guides/pce-install-upgrade/preparation/requirements-for-pce-installation.htm#tls-ssl-requirements

8 Likes

Yeah, probably do. But, they are saying they need to add the ISRG root trust anchor to that to satisfy the server's "verification". This is the last hangup and one I just posted about.

Edit: This is the chain they said they need to make this work. I think they should remove the last one but it apparently did not work.

0:
subject= /CN=illumio.consulting
issuer= /C=US/O=Let's Encrypt/CN=R3
notBefore=Jul  6 00:25:27 2022 GMT
notAfter=Oct  4 00:25:26 2022 GMT
1:
subject= /C=US/O=Let's Encrypt/CN=R3
issuer= /C=US/O=Internet Security Research Group/CN=ISRG Root X1
notBefore=Sep  4 00:00:00 2020 GMT
notAfter=Sep 15 16:00:00 2025 GMT
2:
subject= /C=US/O=Internet Security Research Group/CN=ISRG Root X1
issuer= /C=US/O=Internet Security Research Group/CN=ISRG Root X1
notBefore=Jun  4 11:04:38 2015 GMT
notAfter=Jun  4 11:04:38 2035 GMT
8 Likes

Everything is working now as expected. The product is just designed to be used with purchased certificates and it has to have a valid chain trust in order to get the product working.

I think it would be better as the person complained on the main announcement post with Let's Encrypt to have both bundles full chain included or simply remove the expired one, there shouldn't be any expired cert in there, even if it's for older android devices. Just thinking.

Anyways, thanks LOADS everything @MikeMcQ @jvanasco and @rg305 for the help here. It was a good long test we did here today :slight_smile:

1 Like

They do. As I described, the default is the "long chain". You can use the --preferred-chain option of certbot to select the "short chain". It is not practical to return both for each request - you would still need to choose one or the other.

Besides, your biggest problem (now) is that addition of the root trust anchor. That is highly unusual. And, is contrary to the server's own docs so appears to be a bug in their verification routine.

9 Likes

Makes sense! Thanks @MikeMcQ !!!!

3 Likes

The first part must be a misconception/misunderstanding - there is no difference between a paid cert and a free cert [when both come from a valid globally trusted CA].

The second part is a strange requirement when given that it is expected to be included in the bundle provided by the issuing CA [extremely BAD practice].

9 Likes

Thanks @rg305!!

2 Likes

A few things here:

  1. The expired certificate is the default option, but not required. The ACME API provides both certificates, it is a deficiency in the client or user if the alternate option is not utilized or offered.

  2. The expired certificate technique is the only way for a large number of devices to utilize the internet.

  3. The expired certificate technique works because:

  • The Android devices to not care about the expiration date
  • Nearly every modern client (browsers, openssl & variants, programming libraries, applications) ignores the presented chain and calculates their own path to trusted roots.

The issue that you experienced is due in part to using an old and unsupported version of OpenSSL. 1.02 was released in 2015 and stopped receiving updates in 2019 as part of their LTS (long term support) strategy. Aside from missing the updates and security fixes in the 1.1.0 and 1.1.1 releases, 1.02k is relatively old for that release cycle - which culminated in 1.02u.

The 1.02k release dates back to around Jan 26, 2017 - this is over 5 years ago (see Prepare for 1.0.2k release · openssl/openssl@081314d · GitHub)

CentOS 7 was released in 2014 and only received updates through 2020, when the project was terminated by RedHat. There are some maintenance updates promised through 2024 - but continuing to use the platform is simply not prudent.

This might not be a contradiction. You linked to their active v21.5 docs, but we have no idea what version is running. The 21.5 release looks to be relatively new, but the OS is 8 years old and 2 years out of it's full support window (AFAIK, it's only getting security updates now). I assume the machine is running a much earlier version.

9 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.