The 5th Annual China PHP Conference


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

openssl_pkey_get_privateLit une clé privée


resource openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] )

openssl_pkey_get_private() analyse la clé key et la prépare pour être utilisée par d'autres fonctions.

Liste de paramètres


key peut être l'une des valeurs suivantes :

  1. une chaîne au format file://path/to/file.pem. Le fichier ainsi désigné doit contenir une clé privée ou un certificat au format PEM (éventuellement les deux).
  2. Une clé privée au format PEM.


Le paramètre optionnel passphrase doit être utilisé si la clé spécifiée est chiffrée (protégée par un mot de passe).

Valeurs de retour

Retourne une ressource positive représentant une clé en cas de succès, ou FALSE si une erreur survient.

add a note add a note

User Contributed Notes 3 notes

kristof1 at mailbox dot hu
3 years ago
It's actually "file://key.pem" when you want to give a relative path using unix systems. It will be three '/' in case of absolute path (e.g "file:///home/username/..."). But this path consists of two '/' originated from "file://" and one '/' from the fact that home is a subfolder of the unix filesystem's root directory ("/home/username/..."). This two part will be concatenated and you will get three '/' characters following each other.

So you only have to concatenate "file://" with an existing path string in every case.
geoff at hostfission dot com
7 months ago
Since this function can be used to load a PEM encoded string also, those that are using it relying on user input should be sure to check that the passed data is indeed a PEM encoded string and not a malicious file path.

The following should be sufficient.

= trim($_POST['private']);
  if (
strpos($private, '-----') !== 0) return false;
6 years ago
Please note that "file://path/to/file.pem" in documentation means file protocol + file path. In UNIX like OS, that is something like file:///rsa_private_key.pem. There is THREE slashes in the path string, not TWO.
To Top