OpenSSL a PHP
OpenSSL és una potent llibreria de programari lliure que implementa els protocols SSL (Secure Sockets Layer) i TLS (Transport Layer Security), així com algoritmes criptogràfics generals. A PHP, l'extensió openssl proporciona una interfície per utilitzar totes aquestes funcionalitats per crear, gestionar i verificar dades segures.
La llibreria openssl de PHP s'utilitza principalment per a tasques relacionades amb la seguretat i la criptografia:
-
Xifratge/Desxifratge: Xifratge de dades bidireccional utilitzant algorismes simètrics (com AES) i asimètrics (com RSA).
-
Signatures Digitals: Signar dades digitalment per verificar la seva integritat i autenticitat.
-
Gestió de Certificats: Creació, gestió i validació de certificats X.509 (utilitzats en HTTPS).
-
Funcions Hash: Generació de hashes segurs per a la verificació d'integritat (checksums).
-
Generació de Claus: Creació de claus públiques i privades.
Configuració
L'extensió openssl no requereix una configuració complexa, però ha d'estar habilitada al sistema PHP.
-
Comprovació: La manera més ràpida de comprovar-ho és utilitzar la funció
phpinfo()i buscar una secció anomenadaopenssl. -
Habilitació (Windows): Cal editar el fitxer
php.inii descomentar la línia:Ini, TOMLextension=openssl -
Habilitació (Linux): Normalment s'instal·la via gestor de paquets i s'habilita amb una comanda (p. ex.,
sudo apt install php-openssl). -
Reinici: Després de qualsevol modificació a
php.ini, s'ha de reiniciar el servidor web (Apache, Nginx/PHP-FPM).
Usos habituals
L'extensió openssl és la base per a moltes operacions quotidianes de seguretat en aplicacions web:
| Cas d'Ús | Propòsit | Funció PHP Clau (Exemple) |
| Peticions segures | Permet als clients HTTP de PHP (com cURL o file_get_contents) connectar-se a URLs HTTPS. |
El stream ssl per a file_get_contents() |
| Xifratge de dades | Emmagatzemar dades sensibles (p. ex., informació personal, tokens d'API) xifrades a la base de dades. | openssl_encrypt(), openssl_decrypt() |
| Validació JWT/Webhooks | Verificar que una petició de servei extern (un webhook o un token JWT) prové realment de la font legítima mitjançant la seva signatura digital. | openssl_verify() |
| Generació de claus | Crear un parell de clau pública/privada per a la seguretat de l'usuari o del sistema. | openssl_pkey_new() |