函数:openssl_pkcs12_export_to_file()
适用版本:PHP 4 >= 4.2.0, PHP 5, PHP 7
用法:openssl_pkcs12_export_to_file ( mixed $x509 , string $filename , mixed $priv_key , string $pass [, array $args ] ) : bool
说明:openssl_pkcs12_export_to_file() 函数将给定的 X.509 证书和私钥导出到一个 PKCS#12 文件中。PKCS#12 文件通常用于存储证书和私钥以及其他相关证书链的格式。
参数:
- x509: 公钥证书。可以是一个 PEM 格式的字符串,也可以是一个 X.509 证书资源。
- filename: 导出的 PKCS#12 文件的路径。
- priv_key: 私钥。可以是一个 PEM 格式的字符串,也可以是一个私钥资源。
- pass: 导出 PKCS#12 文件时的密码。
- args (可选): 一个关联数组,用于设置额外的选项。
返回值:成功时返回 true,失败时返回 false。
示例:
// 导出证书和私钥到 PKCS#12 文件
$x509 = file_get_contents('certificate.pem');
$privateKey = openssl_pkey_get_private('private_key.pem');
$password = 'password';
$filename = 'exported.p12';
$result = openssl_pkcs12_export_to_file($x509, $filename, $privateKey, $password);
if ($result) {
echo 'PKCS#12 文件导出成功。';
} else {
echo 'PKCS#12 文件导出失败。';
}
注意事项:
- 传递给函数的 x509 和 priv_key 参数可以是 PEM 格式的字符串,也可以是对应的资源。
- 导出的 PKCS#12 文件通常会加密,因此需要提供一个密码用于保护文件。
- 导出的 PKCS#12 文件可以使用其他工具进行导入和使用,如 OpenSSL 命令行工具或其他编程语言的库。
- 在使用该函数之前,确保已启用 OpenSSL 扩展。可以通过检查 php.ini 文件中的
extension=openssl
行来确认是否启用了该扩展。