openssl_csr_get_subject()

获取证书签名请求(CSR)的主题信息

首字母:O

函数名: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,则返回的数组中的键名将使用完整的长名称。

同首字母函数