📜  PHP openssl_pkcs12_export_to_file()函数(1)

📅  最后修改于: 2023-12-03 15:33:30.687000             🧑  作者: Mango

PHP openssl_pkcs12_export_to_file()函数介绍

概述

openssl_pkcs12_export_to_file()函数用于将cert和private key打成.pfx文件存储,以方便导入到操作系统或浏览器中。可用于HTTPS客户端身份认证和服务器身份认证。

语法
bool openssl_pkcs12_export_to_file(
    string $cert,
    string $filename,
    mixed $private_key,
    string $pass,
    array $args = [],
    int $flags = PKCS12_DEFAULT_FLAGS
)
参数
  • $cert: 证书内容,也可以是证书文件路径。
  • $filename: 生成的.pfx文件路径。
  • $private_key: 私钥,可以是私钥内容,也可以是私钥文件路径。
  • $pass: 密码。
  • $args: 额外参数数组。
  • $flags: 标记位,可以省略,默认使用PKCS12_DEFAULT_FLAGS标记。
返回值

成功返回true,否则返回false

示例
// 生成pfx文件
$cert = file_get_contents('cert.pem');
$private_key = file_get_contents('private_key.pem');
openssl_pkcs12_export_to_file($cert, 'client.pfx', $private_key, 'secret');

// 使用pfx文件进行客户端SSL验证
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://example.com');
curl_setopt($curl, CURLOPT_SSLCERTTYPE, 'P12');
curl_setopt($curl, CURLOPT_SSLCERT, 'client.pfx');
curl_setopt($curl, CURLOPT_SSLCERTPASSWD, 'secret');
$result = curl_exec($curl);
curl_close($curl);
总结

openssl_pkcs12_export_to_file()函数是进行客户端或服务器端SSL认证时必不可少的一个函数,通过使用该函数可以将证书和私钥打包成一个.pfx文件,便于在不同的操作系统或浏览器中导入,以达到客户端或服务器端认证的目的。