Estoy intentando integrarme con un servicio de terceros y han solicitado la clave pública de nuestro servidor. Se lo envié a ellos y dijeron que lo habían configurado en su extremo. Para que yo les haga una solicitud, ellos dicen que debo incluir el certificado con la solicitud.
¿Cómo funciona exactamente este esquema? No veo cómo puede funcionar un intercambio Diffie-Hellman en este caso. Cualquier esquema que pienso puede romperse fácilmente en el caso de un MITM. No tenemos forma de generar el secreto y enviárselo de forma segura como un apretón de manos estándar. Pero si generan el secreto, ¿cómo pueden devolverlo y demostrar que fueron ellos quienes lo generaron?
Estoy usando cURL, así que asumo que quieren que haga la solicitud con el indicador --cert (incluye clave pública y privada).
--cert le dice a curl que use el archivo de certificado de cliente especificado al obtener un archivo con HTTPS, FTPS u otro protocolo basado en SSL. los el certificado debe estar en formato PKCS # 12 si se usa transporte seguro, o Formato PEM si se utiliza cualquier otro motor. Si la contraseña opcional no es especificado, será consultado en el terminal. Tenga en cuenta que este opción asume un archivo de "certificado" que es la clave privada y la certificado de cliente concatenado.