函式名: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,則返回的陣列中的鍵名將使用完整的長名稱。