SSL unidireccional con curl

SSL unidireccional con curl

Sé que hay muchos temas y artículos por ahí, pero realmente estoy dando vueltas con este.

Tengo una instancia de NodeJS ejecutándose en TLS. Necesito otro servidor para conectarme usando cURL. Lamentablemente, no puedo hacerlo -kdebido a las limitaciones de la versión de cURL que estoy usando.

Por lo tanto, necesito que no haya advertencias de certificado al conectarme.

Mis pensamientos son estos:

1. to generate a cert 
2. generate a certificate signing request
3. acquire the CA
4. sign the certificate with the CA
5. Configure NodeJS to send the CA, Cert, and Key during handshakes
6. Have the requesting server do a cURL command, specifying the certificate in the command.

¿Tiene esto algún sentido o es al revés? Me cuesta mucho diferenciar cada pieza.

gracias,

Editar

Aparentemente no tengo idea de lo que estoy haciendo según las respuestas. Si pudiera obtener una copia de la CA, las claves pública y privada. ¿Cómo procedería entonces? Por favor sea detallado.

Respuesta1

Desafortunadamente no puedo hacer -k debido a las limitaciones de la versión de cURL que estoy usando.

Ese es el enfoque equivocado desde el principio. -kdeshabilita cualquier validación del certificado del servidor y, por lo tanto, facilita los ataques de intermediario, es decir, permite exactamente lo que https pretende evitar.

  1. Configurar NodeJS paraenviar la CA, el certificado y la clave durante los apretones de manos
  2. Haga que el servidor solicitante ejecute un comando cURL,especificando el certificado en el comando.

No estoy muy seguro de lo que intenta lograr aquí, pero si lo entiendo correctamente, desea generar un certificado en el lado del servidor y luego enviar este certificado al cliente para que lo compare con este certificado en el futuro.

El problema con este enfoque es que necesita proteger el envío del certificado recién creado desde el servidor al cliente. De lo contrario, un hombre en el medio podría simplemente intercambiar el certificado por uno creado por el atacante y así continuar realizando ataques de hombre en el medio indetectables.

Lamentablemente, su pregunta describe un intento de resolver un problema desconocido (consulteproblema xy). La forma común de hacer SSL es tener una autoridad de certificación (CA) en la que el cliente ya confíe y un certificado emitido por esta CA. En la mayoría de los casos, se utiliza una CA pública como Let's Encrypt para esto, ya que el cliente ya confía en estas CA (se envía con el sistema operativo o el navegador). No hay ninguna explicación en su pregunta de por qué no puede seguir este camino establecido y, en cambio, necesita inventar su propia solución.

información relacionada