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