English | 简体中文 | 繁體中文
查询

openssl_pkcs12_export()函数—用法及示例

「 将一个PKCS#12格式的证书和私钥导出到一个字符串中 」


函数名称: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);

注意事项:

  1. 证书和私钥可以是资源句柄或文件路径。
  2. 导出的PKCS#12文件通常用于将证书和私钥打包成一个文件便于传输或存储。
  3. 导出的PKCS#12文件需要密码保护,确保私钥的安全性。
  4. 导出的PKCS#12文件可以通过openssl_pkcs12_read()函数来解析和使用。
  5. 在使用完资源后,应该使用openssl_x509_free()和openssl_pkey_free()函数释放资源,避免内存泄漏。
补充纠错
热门PHP函数
分享链接