PHP - Funciones OpenSSL

¿Qué es OpenSSL?

OpenSSL es un módulo de código abierto gratuito que está destinado a encargarse de las comunicaciones que tienen lugar a través de redes informáticas. OpenSSL es una herramienta para los protocolos Transport Layer Security (TLS) y Secure Sockets Layer (SSL).

¿Qué es un certificado SSL?

El sitio web utiliza una capa de conexión segura, es decir, SSL. El certificado SSL se encarga de proteger los datos entre dos ordenadores mediante el cifrado. Las dos computadoras involucradas pueden ser el intercambio de datos entre el cliente y el servidor. Cuando comparte datos como contraseña, detalles de la tarjeta de crédito, dirección de la casa, número de seguro social, debe estar protegido y el certificado SSL se encarga de lo mismo. Los certificados SSL aseguran que la identidad de ambas computadoras involucradas esté autenticada para una conexión segura.

Instalación de OpenSSL en PHP

El módulo OpenSSL se agrega de forma predeterminada a PHP. Puede activar el mismo eliminando el (;) ; extension = php_openssl.dll agregado al comienzo de la extensión en php.ini. Después de eso, reinicie Apache y para confirmar si los cambios reflejan, guarde el código siguiente como .php y ejecute el .php en el navegador.

<?php
   phpinfo();
?>
Debería ver el openssl habilitado en el navegador como se muestra a continuación:

Configuración de OpenSSL

El openssl.cnf es el archivo de configuración y tiene toda la configuración predeterminada requerida para que openssl funcione.Para ejecutar openssl lo primero es que php intentará ubicar el archivo de configuración.Para obtener el mismo deberás agregar la carpeta php a Variable ambiental.

Si es un usuario de Windows, los siguientes son los pasos para configurar la variable de entorno para la carpeta php:

1. Haga clic derecho en Mi PC y vaya a Propiedades.

2. Vaya a Configuración avanzada del sistema.

3. Haga clic en el botón 'Variables de entorno'.

4. Edite la variable de ruta y haga clic en el botón Editar.

5. Ahora agregue la ruta de la carpeta Php al final. Estoy usando xampp, así que mi carpeta php es C: \ xampp \ php;

6. Una vez hecho, haga clic en el botón Aceptar.

7.Ahora abra el símbolo del sistema e ingrese el comando: openssl versión -a.

C:\Windows\system32>openssl version -a
OpenSSL 1.0.2l  25 May 2017
built on: reproducible build, date unspecified
platform: mingw64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,2,long) idea(int) blowfish(idx)
compiler: x86_64-w64-mingw32-gcc -I. -I.. -I../include  -D_WINDLL -DOPENSSL_PIC
-DOPENSSL_THREADS -D_MT -DDSO_WIN32 -static-libgcc -DL_ENDIAN -O3 -Wall -DWIN32_
LEAN_AND_MEAN -DUNICODE -D_UNICODE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DO
PENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSH
A512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
 -DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/ssl"

Ahora php podrá localizar el archivo de configuración openssl.cnf.

Funciones OpenSSL

La siguiente tabla enumera todas las funciones relacionadas con PHP OpenSSL. Aquí la versión de la columna indica la versión más antigua de PHP que admite la función.
No Señor Función descriptiva Versión
1 openssl_pkey_new ()

Devuelve un identificador de recurso que tiene un nuevo par de claves pública y privada

5.0.0
2 openssl_pkey_get_private ()

Devuelve la clave privada

5.0.0
3 openssl_pkey_get_public ()

Devuelve la clave pública

5.0.0
4 openssl_ pkey_ export_ to_ file ()

Exporta la clave a un archivo

5.0.0
5 openssl_private_encrypt ()

Cifra los datos con la clave privada.

5.0.0
6 openssl_public_encrypt ()

Cifra los datos con clave pública

5.0.0
7 openssl_public_decrypt ()

Descifra los datos con la clave pública

5.0.0
8 openssl_private_decrypt ()

Descifra los datos con la clave privada

5.0.0