Exportar Certificado y Claves de un archivo .pfx con PHP

PHP / PFX / OPENSSL

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>

 
× ¿En qué podemos ayudarte?