HandShake TLS- Certificato sconosciuto

2

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?

    
posta Ventur 13.10.2017 - 03:38
fonte

1 risposta

2

Sembra che l'output di debug sia eseguito sul lato client. In questo caso

3, RECV TLSv1 ALERT:  fatal, certificate_unknown

significa che il client ha ricevuto un avviso TLS dal server, il che significa che il server non ha gradito il certificato che il client ha inviato, cioè il certificato client:

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]

Tuttavia, né l'output di debug né l'acquisizione di alcun pacchetto contengono informazioni sul motivo per cui il server non ha gradito il certificato. L'avviso TLS contiene solo le informazioni certificate_unknown solo senza dettagli.

Potrebbe non essere stato rilasciato da una CA attendibile dal server per la convalida del certificato client, mancano quelle CA intermedie, che l'argomento è sbagliato ecc. Forse è possibile ottenere maggiori informazioni a riguardo su alcuni registri sul server lato.

    
risposta data 13.10.2017 - 06:51
fonte

Leggi altre domande sui tag