函数名:openssl_csr_get_subject()
适用版本:PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8
函数说明:openssl_csr_get_subject() 函数用于获取证书签名请求(CSR)的主题信息。
语法:openssl_csr_get_subject(resource $csr [, bool $use_shortnames = TRUE]): array|bool
参数:
- $csr:证书签名请求的资源标识符。
- $use_shortnames(可选):指定是否使用短名称,默认为 TRUE。如果设置为 TRUE,则返回的数组中的键名将使用短名称(例如,"C"代表"countryName","ST"代表"stateOrProvinceName");如果设置为 FALSE,则使用完整的长名称。
返回值:
- 成功时,返回一个包含主题信息的关联数组。
- 失败时,返回 FALSE。
示例:
$privateKey = openssl_pkey_new(array(
'private_key_bits' => 2048,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
));
$csrConfig = array(
'countryName' => 'US',
'stateOrProvinceName' => 'California',
'localityName' => 'San Francisco',
'organizationName' => 'Example Corp',
'commonName' => 'www.example.com',
);
$csr = openssl_csr_new($csrConfig, $privateKey);
$subject = openssl_csr_get_subject($csr);
// 使用短名称
print_r($subject);
// 使用完整名称
print_r(openssl_csr_get_subject($csr, false));
输出:
Array
(
[C] => US
[ST] => California
[L] => San Francisco
[O] => Example Corp
[CN] => www.example.com
)
Array
(
[countryName] => US
[stateOrProvinceName] => California
[localityName] => San Francisco
[organizationName] => Example Corp
[commonName] => www.example.com
)
以上示例演示了如何使用 openssl_csr_get_subject() 函数获取证书签名请求的主题信息。首先,使用 openssl_pkey_new() 函数生成一个私钥,然后使用 openssl_csr_new() 函数生成一个证书签名请求(CSR)。最后,通过调用 openssl_csr_get_subject() 函数,可以获取到主题信息的关联数组。如果设置了 $use_shortnames 参数为 FALSE,则返回的数组中的键名将使用完整的长名称。