English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de PHP

Tutoriales avanzados de PHP

PHP & MySQL

Manual de referencia PHP

Funciones de OpenSSL en PHP

¿Qué es OpenSSL?

OpenSSL es un módulo de código abierto gratuito diseñado para manejar la comunicación a través de redes de computadoras. OpenSSL es una herramienta para protocolos de seguridad de capa de传输 (TLS) y capas de conexión segura (SSL).

¿Qué es un certificado SSL?

Los sitios web utilizan capas de conexión segura (es decir, SSL). Los certificados SSL son responsables de proteger los datos entre dos computadoras a través de encriptación. Las dos computadoras involucradas pueden ser el intercambio de datos entre cliente y servidor. Cuando comparte contraseñas, detalles de tarjetas de crédito, dirección hogar, número de seguridad social, etc., debe protegerse y los certificados SSL lo hacen. Los certificados SSL aseguran la autenticación de las dos computadoras involucradas para asegurar una conexión segura.

Instalación de OpenSSL en PHP

Por defecto, el módulo OpenSSL ya se ha agregado a PHP. Puede eliminarlo en php.ini; extension = php_openssl.dllIniciousando el punto y coma (;) para activarlos. Después de eso, reinicie Apache y verifique si los cambios han tenido efecto, luego guarde el siguiente código como .php y ejecute .php en el navegador.

<?php
   phpinfo();
?>
Pruebe y vea‹/›

Debería ver en el navegador que OpenSSL está habilitado, como se muestra a continuación:

Configuración de OpenSSL

openssl.cnf es el archivo de configuración, que contiene todas las configuraciones por defecto necesarias para que OpenSSL funcione correctamente. Para ejecutar OpenSSL, lo primero que hace php es intentar encontrar este archivo de configuración. Para obtener el mismo archivo, debe agregar la carpeta Php a las variables de entorno.

Si es usuario de Windows, siga los siguientes pasos para configurar la variable de entorno para la carpeta Php:

1.Haga clic con el botón derecho en el equipo y vaya a Propiedades.

2.Vaya a la configuración del sistema avanzado.

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

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

5.Ahora agregue la ruta del archivo Php en la parte inferior. Estoy usando XAMPP, mi carpeta Php es c:\xampp\php;。

6.Después de completar, 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\sistema32>openssl versión -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"

现在,php将能够找到openssl.cnf配置文件。

OpenSSL 函数

下表列出了与PHP OpenSSL相关的所有函数。此处的“版本”表示支持函数功能的PHP的最早版本。

序号函数描述
版本
1openssl_pkey_new()返回具有新的私钥和公钥对的资源标识符5.0.0
2openssl_pkey_get_private()返回私钥5.0.0
3openssl_pkey_get_public()返回公钥5.0.0
4openssl_pkey_export_to_file()将密钥导出到文件5.0.0
5openssl_private_encrypt()用私钥加密数据5.0.0
6openssl_public_encrypt()

用公钥加密数据

5.0.0
7openssl_public_decrypt()用公钥解密数据5.0.0
8openssl_private_decrypt()用私钥解密数据5.0.0