OpenSSL

Openssl es Es un conjunto de herramientas que permiten una completa gestión de certificados. Para manipular certificados tenemos la orden openssl, que admite una gran variedad de órdenes distintas, entre ellas:

  • ca Gestión de una autoridad certificadora (CA)

  • crl Gestión de revocación de certificados CLR (Certificate Revocation List)

  • crl2pkcs7 Conversiones de CRL a PKCS#7.

  • dgst Cálculo de resúmenes.

  • passwd Generación de contraseñas

  • pkcs12 Gestión de certificados PKCS#12

  • pkcs7 GEstión de certificados PKCS#7

  • req Gestión de solicitudes de certificados X.509 (Certificate Signing Request, CSR)

  • rsa Gestión de llaves RSA

Estas órdenes de openssl admiten una serie de opciones que dependen de la orden. Vamos a citar algunas de las más utilizadas:

  • -out indica el fichero de salida para la llave pública o certificado.

  • -keyout indica el fichero de salida para la llave privada. Si coincide con el fichero indicado en -out ambas llaves se guardan en el mismo fichero.

  • -in indica un fichero de entrada necesario para el proceso

  • -key indica una llave privada para utilizar en el proceso. Si la llave privada está protegida por contraseña, entonces la solicita antes de usarla.

  • -outform indica el formato de fichero de salida. Esta opción exige un argumento que es el tipo de fichero, que puede ser DER, o PEM

  • -inform se utilza para indicar el formato del fichero de entrada, DER o PEM

  • -des3 indica que la llave privada debe ir protegida con contraseña.

  • -nodes indica que la llave privada no lleva contraseña de acceso.

Configuración de OpenSSL

Una de las opciones de compilación de openssl es ?--openssldir? para indicar un directorio para los ficheros de openssl. Este directorio normalmente reúne los certificados de las CA de confianza.

La ubicación del directorio de datos de SSL depende de como se configurara en el momento de la compilación, y lo podremos encontrar en /usr/local/ssl (predefinido), /usr/share/ssl, /etc/pki/tls (Red Hat/Fedora), /etc/ssl (Gentoo), /usr/lib/ssl (Debian), /System/Library/OpenSSL (Macintosh OS X). Haremos referencia a esta directorio como $SSL.