函数名称:openssl_pkcs12_export()
适用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7
函数描述:openssl_pkcs12_export() 函数将一个PKCS#12格式的证书和私钥导出到一个字符串中。
用法: openssl_pkcs12_export(mixed $x509, string &$out, mixed $priv_key, string $pass [, array $args])
参数说明:
- $x509:必需,表示X.509证书的资源句柄或证书的文件路径。
- &$out:必需,将导出的PKCS#12格式的证书和私钥保存到此字符串中。
- $priv_key:必需,表示私钥的资源句柄或私钥的文件路径。
- $pass:必需,表示导出的PKCS#12文件的密码。
- $args:可选,表示一个关联数组,用于指定一些可选参数,如加密算法、密钥长度等。
返回值:成功时返回 TRUE,失败时返回 FALSE。
示例:
// 从文件中加载证书和私钥
$certFile = 'cert.pem';
$keyFile = 'key.pem';
$passphrase = 'password';
$cert = openssl_x509_read(file_get_contents($certFile));
$key = openssl_pkey_get_private(file_get_contents($keyFile), $passphrase);
// 导出PKCS#12格式的证书和私钥到字符串
if (openssl_pkcs12_export($cert, $p12, $key, $passphrase)) {
// 保存到文件
file_put_contents('cert.p12', $p12);
echo 'PKCS#12证书导出成功!';
} else {
echo 'PKCS#12证书导出失败!';
}
// 释放资源
openssl_x509_free($cert);
openssl_pkey_free($key);
注意事项:
- 证书和私钥可以是资源句柄或文件路径。
- 导出的PKCS#12文件通常用于将证书和私钥打包成一个文件便于传输或存储。
- 导出的PKCS#12文件需要密码保护,确保私钥的安全性。
- 导出的PKCS#12文件可以通过openssl_pkcs12_read()函数来解析和使用。
- 在使用完资源后,应该使用openssl_x509_free()和openssl_pkey_free()函数释放资源,避免内存泄漏。