Segurança
Categorias

Recuperando a chave pública de um certificado digital no PHP

Com esta função, é possível recuperar a chave pública de um Certificado Digital.

A função utiliza a função: openssl_pkey_get_details que está disponível a partir do PHP 5.2.0. No nosso caso a chave foi recuperada a chave pública mas é possível obter também outros atributos do certificado, bastando pouca alteração no código.

function getPublicKey($caminhoCertificado){
	//Funcao para pegar a chave publica
	//Abre o certificado digital
	$fp = fopen($caminhoCertificado, "r");
	$pub_key = fread($fp, 8192);
	fclose($fp);
	//Pega a referência para a cheve pública
	$pub = openssl_get_publickey($pub_key);
	//Pega a chave pública (retorna um array)
	$keyData = openssl_pkey_get_details($pub);
	//Retorna a chave
	return $keyData['key'];
}