En PHP, OpenSSL se utiliza para manipular certificados digitales y proporcionar seguridad en aplicaciones web. Aquí te mostraremos cómo extraer certificados digitales usando OpenSSL en PHP.
Antes de empezar, asegúrate de tener habilitado OpenSSL en tu versión de PHP, solo tienes que cambiar en el archivo php.ini lo siguiente:
“;extension=openssl” a “extension=openssl”.
Una vez habilitado, puedes empezar a utilizar OpenSSL en PHP. Para extraer un certificado digital, debes seguir los siguientes pasos:
Paso 1: Cargar el certificado digital.
Puedes hacerlo utilizando la función openssl_x509_read(). Esta función lee el certificado digital desde un archivo o desde una cadena.
$certificate_content = file_get_contents('/path/to/certificate.pfx');
Paso 2: Extraer certificado y llave privada
Para esto utilizaremos la función openssl_pkcs12_read() el cual recibe como parámetro el contenido del archivo .pfx (que cargamos en el paso 1) y la contraseña del archivo.
if (openssl_pkcs12_read($certificate_content, $data, "password")) {
echo "Información del certificado
";
print_r($data);
} else {
echo "Error: No se puede extraer datos.
";
exit;
}
Paso 3: Obtener la clave pública del certificado
Además de la información del certificado, también puedes obtener la clave pública del mismo.
$details = openssl_pkey_get_details(openssl_pkey_get_private($data['pkey']));
$public_key = $details['key'];
Adicionalmente podemos extraer el Modulo y el Exponente:
$modulus = base64_encode($details['rsa']['n']);
$exponent = base64_encode($details['rsa']['e']);
<solutionops-team> Autor: Jojan Cardenas </solutionops-team>