Primeros pasos con OpenSSL

Instalación o configuración

OpenSSL es un proyecto de código abierto que proporciona un conjunto de herramientas sólido, de calidad comercial y con todas las funciones para los protocolos Transport Layer Security (TLS) y Secure Sockets Layer (SSL). También es una biblioteca de criptografía de propósito general.

El kit de herramientas OpenSSL tiene una licencia de estilo Apache, lo que básicamente significa que puede obtenerlo y usarlo con fines comerciales y no comerciales, sujeto a algunas condiciones de licencia simples.

Compilación e instalación de openssl en sistemas Linux/Unix

Visión general

Estas instrucciones son para adquirir, compilar e instalar openssl desde la fuente. Openssl generalmente también se incluye en los administradores de paquetes.

Recursos

https://github.com/openssl/openssl

Dependencias

  • hacer
  • Perla 5
  • gcc/clang
  • git

Las dependencias se pueden instalar a través de un administrador de paquetes como apt, dnf o brew.

Pasos

$ cd ~/path/to/projects
$ git clone https://github.com/openssl/openssl.git
$ cd openssl
$ ./config
$ make
$ make test
$ sudo make install

Por defecto, openssl se instalará en /usr/local.

Verificar

$ openssl --version

Ahora tiene una compilación predeterminada de openssl instalada en su máquina.

(Des-) Inicialización de la biblioteca de openssl

Visión general

Openssl consta de 2 bibliotecas: libcrypto y libssl. Antes de que se pueda usar la API de openssl en una aplicación, se espera que se realicen procedimientos de inicialización obligatorios. Una vez que la aplicación finaliza con el trabajo relacionado con openssl, se espera que limpie los recursos asignados.

El código a continuación completa la inicialización, sin embargo, el desarrollador es libre de inicializar solo las cosas de openssl que le interesan.

Inicializar libcrypto

ERR_load_crypto_strings();
OpenSSL_add_all_algorithms();
OPENSSL_config(NULL); // Load default configuration (e.g. openssl.conf)

Inicializar libssl

OPENSSL_init_ssl(0, NULL);

Desinicializar

CONF_modules_unload(1);
EVP_cleanup();
CRYPTO_cleanup_all_ex_data();
ERR_remove_state();
ERR_free_strings();

Ejecute OpenSSL en Windows sin instalar

Esta solución alternativa nos ayudó mucho en mi trabajo (soporte técnico), creamos un archivo por lotes simple que podíamos ejecutar desde cualquier lugar (no teníamos los permisos para instalar el exe real). Esta solución ejecutará OpenSSL y abrirá la carpeta bin por usted (porque aquí es donde se guardarán los archivos que cree o modifique).

Como instalar:

  1. Descargue los archivos binarios de OpenSSL [aquí][1]. (Tenga en cuenta que se ha confirmado que funciona con la versión 0.9.8h).

  2. Copie este código en un archivo llamado StartOpenSSL.bat. Guárdelo en una ubicación de su elección. Se puede ejecutar desde cualquier lugar.

     @echo off
     title OpenSSL
    
     cd\openssl\bin
    
     if exist "C:\openssl\share\openssl.cnf" (
    
     set OPENSSL_CONF=c:/openssl/share/openssl.cnf
     start explorer.exe c:\openssl\bin
    
     echo Welcome to OpenSSL
    
     openssl
    
     ) else (
    
     echo Error: openssl.cnf was not found
     echo File openssl.cnf needs to be present in c:\openssl\share
     pause
    
     )
    
     exit
    
  3. Una vez que haya descargado los binarios de OpenSSL, extráigalos a su unidad C en una carpeta titulada OpenSSL. (La ruta debe ser C:\OpenSSL). No mueva ninguno de los contenidos de las carpetas, simplemente extráigalos a la carpeta.

  4. Está listo para usar OpenSSL. Esta es una excelente solución para los usuarios de Windows que no tienen los privilegios para instalarlo, ya que no requiere permisos. Simplemente ejecute el archivo bat de antes haciendo doble clic en él. [1]: http://gnuwin32.sourceforge.net/packages/openssl.htm

Ejemplos de comandos de OpenSSL

Inspeccionar certificado SSL

openssl x509 -in server.crt -noout -text

Generar clave de servidor

openssl genrsa -out server.key 2048

generar rsc

openssl req -out server.csr -key server.key -new