函数名:openssl_csr_get_public_key()
适用版本:PHP 5 >= 5.2.0, PHP 7, PHP 8
函数说明:openssl_csr_get_public_key() 函数用于从证书签名请求(CSR)中获取公钥。
语法:openssl_csr_get_public_key(resource $csr [, bool $short_names = true ]) : resource|false
参数:
- $csr:必需,表示证书签名请求资源的标识符。
- $short_names:可选,表示是否使用短名称,默认为 true。如果设置为 true,则返回的公钥资源将使用短名称;如果设置为 false,则返回的公钥资源将使用完整的名称。
返回值:
- 成功时,返回公钥资源的标识符。
- 失败时,返回 false。
示例:
$privateKey = openssl_pkey_new(array(
'private_key_bits' => 2048,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
));
$csrConfig = array(
"commonName" => "example.com",
"countryName" => "US",
"stateOrProvinceName" => "California",
"localityName" => "San Francisco",
"organizationName" => "Example Inc",
"organizationalUnitName" => "IT Department",
);
$csr = openssl_csr_new($csrConfig, $privateKey);
$publicKey = openssl_csr_get_public_key($csr);
// 输出公钥信息
echo openssl_pkey_get_details($publicKey)['key'];
在上面的示例中,我们首先使用 openssl_pkey_new() 函数生成一个私钥,并使用 openssl_csr_new() 函数生成一个证书签名请求(CSR)。然后,我们使用 openssl_csr_get_public_key() 函数从 CSR 中获取公钥。最后,使用 openssl_pkey_get_details() 函数获取公钥的详细信息,并输出公钥的内容。
注意:为了使示例正常运行,需要确保 PHP 安装了 OpenSSL 扩展,并且配置正确。