openssl_pkey_get_private

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

openssl_pkey_get_private获取私钥

说明

openssl_pkey_get_private(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, ?string $passphrase = null): OpenSSLAsymmetricKey|false

openssl_pkey_get_private() 解析 private_key 供其他函数使用。

参数

private_key

private_key 可以是如下密钥之一:

  1. 如下格式的字符串 file://path/to/file.pem。该文件必须包含 PEM 编码的证书或者私钥 (可能都包含了).
  2. 一个 PEM 格式的私钥。

passphrase

如果指定的密钥已被加密了(受密码保护),可选参数 passphrase 是必须要的。

返回值

成功时现在返回 OpenSSLAsymmetricKey 实例,失败时返回 false

更新日志

版本 说明
8.0.0 成功时,此函数现在返回 OpenSSLAsymmetricKey 实例;之前返回类型 OpenSSL keyresource
8.0.0 private_key 现在接受 OpenSSLAsymmetricKeyOpenSSLCertificate 实例;之前接受类型 OpenSSL keyOpenSSL X.509resource
8.0.0 passphrase 现在可为 null。
add a note add a note

User Contributed Notes 2 notes

up
23
kristof1 at mailbox dot hu
10 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.
up
-5
pablo dot siciliano at gmail dot com
4 years ago
Hi.

If this function not work with pathname try with a file_get_contents of a key file.
To Top