Razones para un error de "Certificado incorrecto"

-1

Tengo un problema con los certificados autofirmados en un clúster etcd . Los certificados están bien porque si los uso en nginx , no hay ningún error mientras agrego el archivo CA a mi tienda de certificados.

Esta es una captura de curl --cacert ca.pem https://192.168.73.120:2379 cuando se usa nginx . enlace

Sin embargo, si en lugar de usar nginx yo uso etcd (que es el servicio real que quiero configurar), un curl --cacert ca.pem https://192.168.73.120:2379/v2/keys , por ejemplo, lanza curl: (35) Unknown SSL protocol error in connection to 192.168.73.120:-9825 en Mac OS o curl: (35) gnutls_handshake() failed: Certificate is bad en Linux.

La siguiente es una captura de red cuando se usa etcd enlace . Como puede ver en el paquete 21, el servidor está devolviendo un Bad certificate .

Algunas investigaciones sobre el código de error curl 35 indican que la razón podría ser:

  • Cifrados: no es un problema, ambos usan TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • Permisos: tampoco es un problema, los archivos cert están configurados en 644 y los archivos clave en 600.
  • Procotol: no es un problema, ambos usan TLSv1.2
  • Clave privada caducada: se generó con 365 días de vida útil, por lo que no caducó.

Si uso Chrome , obtengo ERR_BAD_SSL_CLIENT_AUTH_CERT . Sin embargo, al inspeccionar la consola, dice que el certificado es válido (porque agregué la CA a mi tienda).

Así que realmente no tengo ideas en este momento. ¿Cuál crees que podría ser la raíz de este problema?

    
pregunta yzT 25.01.2017 - 12:26
fuente

1 respuesta

3

Desde la captura de paquetes es visible que el servidor etcd solicita un certificado de cliente ( CertificateRequest en el marco 12). Las líneas de comando de curvatura no incluyen un certificado de cliente, lo que significa que enviará un certificado vacío (Marco 16). Esto hace que el servidor (no el cliente) se queje de un certificado incorrecto (vacío) (cliente).

Obtienes un error similar en Chrome. Ve las solicitudes de certificado pero no tiene un certificado de cliente para enviar, por lo que se queja del certificado faltante.

    
respondido por el Steffen Ullrich 25.01.2017 - 14:10
fuente

Lea otras preguntas en las etiquetas