Ho aggiunto i certificati necessari per comunicare un servizio Web tramite TLS, sia il client che il server hanno aggiunto i certificati al keystore, ma nell'handshake viene restituito il certificato sconosciuto.
Conversazione SSL:
Is initial handshake: true
....
*** ClientHello, TLSv1
*** ServerHello, TLSv1
*** Certificate chain
[ chain [0] = [
[
Version: V3
Subject: CN=certificate_server, OU=163831, O=groupc Inc., C=US
Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
Key: IBMJCE RSA Public Key:
modulus:
... more data
public exponent:
65537
Validity: [From: Mon Apr 03 10:43:20 CDT 2017,
To: Wed Apr 03 09:43:20 CST 2019]
Issuer: CN=Internal DeviceCA Untrusted, DC=nsroot, DC=net
SerialNumber: [110855813xxxxxxxxxxxxxxx]
Certificate Extensions: 10
Found trusted certificate:
*** CertificateRequest
Cert Types: RSA, DSS
Cert Authorities:
....
*** ServerHelloDone
** Certificate chain
[ O chain [0] = [
[
Version: V3
Subject: CN=certificateClient, OU=55552, O=groupc Inc., C=US
Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11
Key: IBMJCE RSA Public Key:
modulus:
.... more data
public exponent:
65537
Validity: [From: Tue Aug 08 16:26:27 CDT 2017,
To: Thu Aug 08 16:26:27 CDT 2019]
Issuer: CN=Device CA1 G2 DEV, O=groupc Inc., C=US
SerialNumber: [23415xxxxxxxxxxxxxxxxxxxxxxx]
Certificate Extensions: 10
*** CertificateVerify
*** Finished
verify_data: { 101, 203, 80, 212, 246, 137, 144, 225, 31, 134, 63, 46 }
***
READ: TLSv1 Alert, length = 2
3, RECV TLSv1 ALERT: fatal, certificate_unknown
3 fatal: engine already closed. Rethrowing javax.net.ssl.SSLException: Received fatal alert: certificate_unknown
E elenca il keystore per vedere le chiavi e sono necessarie, nel server ci sono anche i certificati.
C'è un modo per sapere quale certificato è sconosciuto? o confrontare la stringa conteggiata tra il client e il server?