0
在线手册:中文 英文

openssl_x509_check_private_key

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

openssl_x509_check_private_key检查私钥是否对应于证书

说明

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

检查给定的私钥 key 是否和证书 cert 对应。

警告

这个函数不会检查密钥key是否真的是私钥。 它只是比较了和密钥匹配的公共材料 (比如,RSA密钥的指数和模量) 和/或密钥参数(比如,EC密钥的参数)。

这也意味着,比如,提供给key赋一个公钥值,该函数可能返回 true.

参数

cert

证书。

key

私钥。

返回值

如果给定的私钥 key 和证书 cert对应, 返回true 否则返回 false .

0
在线手册:中文 英文

2位用户评论

[#1] ▲5▼ tomsie@toms.ie [65%] (2017-12-05 13:51:10)

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);

[#2] ▲-1▼ jared@enhancesoft.com [47%] (2015-04-24 20:58:08)

This function will return FALSE if the private key requires a pass phrase.