PHP 7.4.0RC2 Released!

openssl_x509_check_private_key

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

openssl_x509_check_private_keyVérifie si une clé privée correspond à un certificat

Description

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

Vérifie si le paramètre key fourni est la clé privée qui correspond à cert.

Avertissement

Cette fonction ne vérifie pas si KEY est effectivement une clé privée ou pas. Elle compare simplement le matériel publique (par exemple exponent et modulo d'une clé RSA) et/ou les paramètres de clé (par exemple les paramètres EC d'une clé EC) d'une paire de clé.

Ceci signifie, par exemple, qu'une clé publique pourrait être fournit pour key et la fonction peut retourner TRUE.

Liste de paramètres

cert

Le certificat.

key

La clé privée.

Valeurs de retour

Retourne TRUE si key est la clé privée qui correspond à cert, ou FALSE sinon.

add a note add a note

User Contributed Notes 2 notes

up
3
jared at enhancesoft dot com
4 years ago
This function will return FALSE if the private key requires a pass phrase.
up
1
tomsie at toms dot ie
1 year 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);
To Top