(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_x509_check_private_keyComprueba si una clave privada se corresponde a un certificado


openssl_x509_check_private_key(mixed $cert, mixed $key): bool

Comprueba si key es la clave privada que se corresponde con cert.



El certificado.


La clave privada.

Valores devueltos

Devuelve true si key el la clave privada que se conrresponde con cert, o false si no.

add a note add a note

User Contributed Notes 2 notes

tomsie at toms dot ie
5 years ago
This function DOES return TRUE if the key has a passphrase, you just need to set up the data in such a way that the function can understand it. It is not documented here.

This error message led me to the solution:

PHP Warning:  openssl_x509_check_private_key(): key array must be of the form array(0 => key, 1 => phrase)

So this works:

$certFile = file_get_contents('cert.crt');
$keyFile = file_get_contents('cert.key');
$keyPassphrase = "password1234";
$keyCheckData = array(0=>$keyFile,1=>$keyPassphrase);
$result = openssl_x509_check_private_key($certFile,$keyCheckData);
jared at enhancesoft dot com
7 years ago
This function will return FALSE if the private key requires a pass phrase.
To Top