tls s_client instalar configurar certificado ssl openssl ssl-certificate

instalar - OpenSSL y s_client: ¿por qué se requiere una clave privada del cliente?



instalar certificado ssl jboss (1)

Los certificados en sí mismos son solo piezas públicas de información. Lo que vincula un certificado de clave pública al nombre que contiene es el hecho de que quien tenga el control legítimo de ese nombre (por ejemplo, su nombre o el nombre de su servidor) también tiene la clave privada para él.

Los certificados se utilizan para probar la identidad de la parte remota al desafiar a la parte remota a realizar una operación que solo se puede realizar con la clave privada correspondiente: firmar algo (que se puede verificar con la clave pública) o descifrar algo que se cifró con La clave pública. (Ambos pueden ocurrir en el protocolo de enlace SSL / TLS, dependiendo de la suite de cifrado).

Durante el protocolo de enlace SSL / TLS, el servidor envía su certificado (en claro) y demuestra al cliente que tiene la clave privada correspondiente mediante un intercambio de clave autenticado .

En su caso, también desea utilizar la autenticación de certificado de cliente. No es suficiente enviar el certificado del cliente durante el protocolo de enlace: el cliente también debe probar que tiene la clave privada. De lo contrario, cualquier persona que reciba ese certificado podría clonarlo. El punto de usar certificados es evitar cualquier clonación, de tal manera que nunca tenga que mostrar su propio secreto (la clave privada).

Más específicamente, el cliente tiene que firmar los mensajes de reconocimiento en el mensaje de verificación de certificado del reconocimiento de TLS para que el servidor pueda verificarlo con la clave pública enviada en el certificado del cliente. Sin este paso, no se llevaría a cabo ninguna autenticación de certificado de cliente.

el tercero me entregó el certificado de cliente, pero no contiene ninguna clave privada

Darle su certificado sin su clave privada parece un poco inútil, a menos que se espere que haya generado una solicitud de certificado por su parte de antemano (en cuyo caso tendría la clave privada).

De hecho, en lugar de recibir un certificado y su clave privada, es una práctica mejor que genere su par de claves, cree una solicitud de certificado (CSR) y haga que su CA emita un certificado de ese CSR (pero sin que ellos lo sepan. llave privada). En este caso, se esperaría que usted mantuviera su clave privada, y podría usarla con el certificado que hubiera recibido.

Necesito configurar un canal de comunicación SSL de 2 vías entre una aplicación .NET / WCF y un servidor web de terceros. En este momento, estoy tratando de obtener un protocolo de enlace exitoso con el host para validar que todos los elementos están configurados correctamente (certificado de cliente, autoridad de certificación del servidor, comunicación de red ...) Estoy usando la herramienta de línea de comandos openSSL para probar y validar esto, usando el comando s_client.

Esto es lo que me detiene y lo que no entiendo:

  • haga lo que haga, openSSL espera encontrar una clave privada para el certificado del cliente
  • el tercero me entregó el certificado de cliente, pero no contiene ninguna clave privada
  • si solo genero mi propio archivo de clave privada usando openSSL, obtengo un error de coincidencia de valores de clave

Tenga en cuenta que acabo de comenzar a utilizar SSL para tener una comprensión muy básica de todo el protocolo. Por lo que he estado leyendo, parece que tanto el servidor como el cliente necesitan su clave privada en una configuración SSL de 2 vías. Sin embargo, no puedo averiguar cómo obtener una clave privada que funcione en mi cliente (trabajar con el certificado de cliente que se me entregó). Apreciaría mucho si alguien pudiera arrojar algo de luz sobre las claves privadas del certificado de cliente, ya que esto me está causando un gran dolor de cabeza.

¡Gracias!