Sto scrivendo un programma in cui invochiamo un servizio web SOAP di terze parti su HTTPS. Attualmente sto ricevendo un errore nella fase SSL Handshake e fallisce con il seguente errore - catena viola il limite dei vincoli di base.
Il server Web sta inviando una catena di certificati come segue:
FOGLIA - I1 - I2 - I3
Il mio codice è in grado di convalidare la catena nel modo seguente, poiché mi sono fidato di tutti i certificati incluso root:
FOGLIA - I1 - I2 - I3 - R
Tuttavia, il problema è che il certificato intermedio I3 ha un pathLen
di 1
, ma ha 2
certificati intermedi tra il certificato Leaf (End-Entity) e lo stesso I3, che sta causando il problema.
Come è stato risolto?
- È necessario chiedere all'host / provider del servizio Web SOAP di modificare la configurazione del certificato alla loro estremità?
- Inoltre, in che modo il server invia addirittura una catena che viola i vincoli?
Ulteriori informazioni:
-
I1 (cioè CA intermedio 1) ha DN
Entrust Certification Authority - L1K
Il certificato può essere scaricato da qui: Scarica I1 ("entrust_l1k.cer") dal sito Entrust
-
I2 (cioè CA intermedio 2) ha DN
CN=Entrust Root Certification Authority - G2, OU="(c) 2009 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
Il numero di serie del certificato è
4a538c28
e il certificato può essere scaricato da qui: Scarica I2 ("entrust_g2_ca.cer") da Affida il sitoÈ interessante notare che questo certificato ha lo stesso DN ed emittente, ma non viene trattato come certificato di origine probabilmente perché non ha identificatore chiave di autorizzazione = identificatore chiave soggetto.
-
I3 (cioè CA intermedio 3) ha DN
CN=Entrust Root Certification Authority - G2, OU="(c) 2009 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
Il certificato I3 ha lo stesso DN di I2 ed è l'emittente di I2, ma I3 stesso è emesso da un'autorità diversa, cioè CA radice, e ha un numero di serie
51d34044
. Questo certificato ha anchepathLen
di1
.Non riesco a trovare questo certificato sul sito di fiducia, quindi sto incollando il contenuto qui.
-----BEGIN CERTIFICATE----- MIIE/zCCA+egAwIBAgIEUdNARDANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMC VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE0MDkyMjE3MTQ1N1oXDTI0MDkyMzAx MzE1M1owgb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgw JgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQL EzAoYykgMjAwOSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9u bHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuoS2ctueDGvi mekwAad26jK4lUEaydphTlhyz/72gnm/c2EGCqUn2LNf00VOHHLWTjLycooP94MZ 0GqAgABFHrDH55q/ElcnHKNoLwqHvWprDl5l8xx31dSFjXAhtLMy54ui1YY5ArG4 0kfO5MlJxDun3vtUfVe+8OhuwnmyOgtV4lCYFjITXC94VsHClLPyWuQnmp8k18bs 0JslguPMwsRFxYyXegZrKhGfqQpuSDtv29QRGUL3jwe/9VNfnD70FyzmaaxOMkxi d+q36OW7NLwZi66cUee3frVTsTMi5W3PcDwa+uKbZ7aD9I2lr2JMTeBYrGQ0EgP4 to2UYySkcQIDAQABo4IBDzCCAQswDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI MAYBAf8CAQEwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2Nz cC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmVudHJ1 c3QubmV0L3Jvb3RjYTEuY3JsMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsGAQUF BwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NQUzAdBgNVHQ4EFgQUanImetAe 733nO2lR1GyNn5ASZqswHwYDVR0jBBgwFoAUaJDkZ6SmU4DHhmak8fdLQ/uEvW0w DQYJKoZIhvcNAQELBQADggEBAGkzg/woem99751V68U+ep11s8zDODbZNKIoaBjq HmnTvefQd9q4AINOSs9v0fHBIj905PeYSZ6btp7h25h3LVY0sag82f3Azce/BQPU AsXx5cbaCKUTx2IjEdFhMB1ghEXveajGJpOkt800uGnFE/aRs8lFc3a2kvZ2Clvh A0e36SlMkTIjN0qcNdh4/R0f5IOJJICtt/nP5F2l1HHEhVtwH9s/HAHrGkUmMRTM Zb9n3srMM2XlQZHXN75BGpad5oqXnafOrE6aPb0BoGrZTyIAi0TVaWJ7LuvMuueS fWlnPfy4fN5Bh9Bp6roKGHoalUOzeXEodm2h+1dK7E3IDhA= -----END CERTIFICATE-----
-
R (cioè certificato root) ha DN
CN=Entrust Root Certification Authority, OU="(c) 2006 Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, O="Entrust, Inc.", C=US
.Questo certificato ha il numero di serie
45 6b 50 54
e può essere scaricato da qui: Scarica R ("entrust_ev_ca.cer") da Affida il sito
Ulteriori informazioni
-
i1
$ openssl x509 -noout -fingerprint -in entrust_l1k.cer SHA1 Fingerprint=F2:1C:12:F4:6C:DB:6B:2E:16:F0:9F:94:19:CD:FF:32:84:37:B2:D7
-
i2
$ openssl x509 -noout -fingerprint -in entrust_g2_ca.cer SHA1 Fingerprint=8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4
-
i3
$ openssl x509 -noout -fingerprint -in i3.cer SHA1 Fingerprint=9E:1A:0C:35:E7:14:B6:97:92:D0:90:B2:CC:4B:BA:45:83:3C:30:15
-
R
$ openssl x509 -noout -fingerprint -in R.cer SHA1 Fingerprint=B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9