Cliente OpenSSL

A menudo necesitamos conectar a un servicio con soporte SSL desde nuestro sistema Linux, y en la mayoría de estas ocasiones nos encontramos que se han usado certificados autofirmados y que no conocemos la CA Raíz que los firma. Para llevar a cabo la conexión con éxito necesitamos confiar en la entidad raíz que firma el certificado.
Un ejemplo podría ser intentar consultar un servicio de directorio como NDS de Novell o directorio activo de Windows desde nuestro cliente desarrollado en Java con JNDI. Para poder conseguirlo, la CA que firma los certificados debe estar incluida en el keyStore del JRE que estamos usando, y para ello, lo primero será obtener la cadena de certificados que se usa en la comunicación. Esto podemos hacerlo, mediante el cliente OpenSSL ejecutando el siguiente comando:

openssl s_client -connect DIR_IP:PUERTO -showcerts

Donde cambiaremos el DIR_IP por la dirección IP del servidor al que queremos conectar y PUERTO por el número de puerto TCP en el que escucha el servicio al que queremos conectar. En la salida del comando, veremos la cadena de certificados codificados en Base64 que podremos copiar a un fichero .crt e incluirlo en nuestro almacén de certificados raíz en los que confiamos.

La imagen la he sacado del album de Darwin Bell en flickr

No hay comentarios: