¿La CA debe ser la misma para la autenticación mutua?

2

Estoy intentando establecer una autenticación mutua entre mi servidor Tomcat y el firewall de mi cliente.

El certificado de servidor que tenemos es de Digicert (Root CA) y RapidSSL (intermedio).

La cadena de certificados en el bloque ServerHello es de QuoVadis.

Pero antes de la línea ServerHelloDone , los Cert Authorities están vacíos:

*** CertificateRequest
Cert Types: RSA, DSS, ECDSA
Supported Signature Algorithms: SHA256withRSA, SHA256withDSA, SHA256withECDSA, SHA384withRSA, Unknown (hash:0x5, signature:0x2), SHA384withECDSA, SHA512withRSA, Unknown (hash:0x6, signature:0x2), SHA512withECDSA, SHA1withRSA, SHA1withDSA, SHA1withECDSA
Cert Authorities:
<Empty>
ajp-line-1, READ: TLSv1.2 Handshake, length = 4
*** ServerHelloDone
Warning: no suitable certificate found - continuing without client authentication
*** Certificate chain
<Empty>

Estoy siguiendo la documentación aquí: enlace

¿Debería RapidSSL / Digicert estar disponible en el bloque Cert Authorities para que la autenticación del cliente continúe?

    
pregunta Hrishikesh Choudhari 03.12.2018 - 06:24
fuente

1 respuesta

2

La autenticación del cliente y del servidor no tiene que usar las mismas CA, pero debe indicar al servidor en qué CA debe confiar para autenticar a los clientes , que parece ser El problema aquí.

¿Por qué? Muchas personas hacen su propia CA y emiten certificados directamente a sus propios clientes. Esto les ahorra a los clientes la molestia de pasar por una certificación a veces desordenada en su extremo. Esta información también se se pasa a los clientes durante el protocolo de enlace TLS.

Otra opción es decirle a los clientes que obtengan certificados de las CA públicas: parece que su compañía hizo esto y no les dijo específicamente a los clientes a qué CA comprar. Si interpreto su descripción correctamente, este cliente eligió a QuoVadis para certificarse en su final. Si confía en que QuoVadis autentique los servidores "lo suficientemente bien" para sus propósitos, entonces configure el servidor para que confíe en QuoVadis para la autenticación del cliente. Para Apache :

SSLCACertificateFile /etc/ssl/certs/name-of-quovadis-certificate.crt

Posiblemente, concatene todas las CA que conozca y en las que confíe (RapidSSL y Digicert, me parece). También puede tomar un acceso directo y simplemente confiar en todas las CA conocidas. En Debian / Ubuntu:

SSLCACertificateFile /etc/ssl/certs/ca-certificates.crt

Aunque cuidadoso: muchas entidades de certificación simplemente validarán automáticamente la propiedad del dominio ( Let's Encrypt lo hace de forma gratuita, por ejemplo). Para abreviar, digamos esto: si la autovalidación de dominio libre no es lo suficientemente buena para usted, busque en Cloudflare o simplemente olvide las CA comerciales y emita certificados manualmente a sus propios clientes.

En cambio, si es el cliente, invierta la pregunta: pregunte al otro lado qué CA confían, posiblemente agregue RapidSSL o DigiCert a su lista y asegúrese de que se envíe la lista.

    
respondido por el Jacopo 03.12.2018 - 07:44
fuente

Lea otras preguntas en las etiquetas