openssl_x509_check_private_key

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

openssl_x509_check_private_keyBir gizli anahtarın bir sertifikaya karşılık olup olmadığına bakar

Açıklama

openssl_x509_check_private_key(OpenSSLCertificate|string $sertifika, #[\SensitiveParameter] OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $gizli_anahtar): bool

Belirtilen gizli_anahtarın belirtilen sertifikaya karşılık olup olmadığına bakar.

Uyarı

İşlev gizli_anahtarın bir gizli anahtar olup olmadığına bakmaz. Sadece genel öğeleri (RSA anahtarının üssü ve modülü gibi) ve/veya anahtar çiftinin anahtar bağımsız değişkenlerini (EC anahtarının EC bağımsız değişkenleri gibi) karşılaştırır.

Yani, örneğin, gizli_anahtar için bir genel anahtar verilebilir ve işlev true döndürebilirdi.

Bağımsız Değişkenler

sertifika

Sertifika nesnesi.

gizli_anahtar

Gizli anahtar.

Dönen Değerler

Gizli anahtar, sertifika'nın karşılığı ise true yoksa false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 sertifika artık OpenSSLCertificate örneği kabul ediyor; evvelce, OpenSSL X.509 özkaynağı kabul edilirdi.
8.0.0 gizli_anahtar artık OpenSSLAsymmetricKey veya OpenSSLCertificate örneği kabul ediyor; evvelce, OpenSSL key veya OpenSSL X.509 özkaynağı kabul edilirdi.
add a note

User Contributed Notes 2 notes

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