HandShake TLS- Certificado desconocido

2

He agregado los certificados necesarios para comunicar un servicio web por TLS, tanto el cliente como el servidor agregaron los certificados al almacén de claves, pero en el apretón de manos, se devuelve el certificado desconocido.

Conversación 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

Y liste el almacén de claves para ver las claves y son las necesarias, en el servidor también están los certificados.

¿Hay alguna manera de saber qué certificado es desconocido? ¿O comparar la cadena cortada entre el cliente y el servidor?

    
pregunta Ventur 13.10.2017 - 03:38
fuente

1 respuesta

2

Parece que la salida de depuración se realiza en el lado del cliente. En este caso

3, RECV TLSv1 ALERT:  fatal, certificate_unknown

significa que el cliente recibió una alerta TLS del servidor, lo que significa que al servidor no le gustó el certificado que el cliente ha enviado, es decir, el certificado del cliente:

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]

Pero, ni la salida de depuración ni ninguna captura de paquetes contiene información sobre por qué al servidor no le gustó el certificado. La alerta TLS solo contiene la información certificate_unknown solo sin ningún detalle.

Es posible que no haya sido emitido por una CA en la que el servidor confiara para la validación de certificados, que falten las CA intermedias, que el tema sea incorrecto, etc. Tal vez pueda obtener más información sobre esto en algunos registros del servidor. lado.

    
respondido por el Steffen Ullrich 13.10.2017 - 06:51
fuente

Lea otras preguntas en las etiquetas