函式名:openssl_csr_new()
適用版本:PHP 4.2.0及以上版本
函式說明:openssl_csr_new()函式用於生成一個新的證書籤名請求(CSR)。
用法: openssl_csr_new(array $dn, &$privkey, array $configargs = array [, array $extraattribs = array [, array $x509extensions = array]])
引數說明:
- $dn:一個關聯陣列,包含了用於建立CSR的Distinguished Name(DN)資訊。陣列的鍵是DN欄位的名稱,值是對應的值。例如,array('countryName' => 'US', 'stateOrProvinceName' => 'California', 'organizationName' => 'Example Corp')。
- &$privkey:一個引用變數,用於接收生成的私鑰。
- $configargs:一個關聯陣列,包含了配置選項。可選引數,用於指定生成CSR的配置選項,例如:array('config' => '/path/to/openssl.cnf')。
- $extraattribs:一個關聯陣列,包含了額外的屬性。可選引數,用於指定額外的屬性,例如:array('challengePassword' => 'password')。
- $x509extensions:一個關聯陣列,包含了X.509擴充套件資訊。可選引數,用於指定X.509擴充套件資訊,例如:array('subjectAltName' => 'example.com')。
返回值: 如果成功生成CSR,則返回一個資源識別符號(resource identifier)用於後續的操作。如果失敗,則返回false。
示例:
$dn = array(
'countryName' => 'US',
'stateOrProvinceName' => 'California',
'organizationName' => 'Example Corp'
);
$configargs = array(
'config' => '/path/to/openssl.cnf'
);
$extraattribs = array(
'challengePassword' => 'password'
);
$x509extensions = array(
'subjectAltName' => 'example.com'
);
$privateKey = null;
$csr = openssl_csr_new($dn, $privateKey, $configargs, $extraattribs, $x509extensions);
if ($csr === false) {
echo "CSR creation failed.";
} else {
echo "CSR creation successful.";
// 可以使用openssl_csr_export()匯出CSR或者使用openssl_csr_get_subject()獲取CSR的主題資訊等。
}
以上示例演示瞭如何使用openssl_csr_new()函式生成一個新的證書籤名請求(CSR),並透過檢查返回值來確定是否生成成功。成功生成CSR後,您可以使用openssl_csr_export()函式匯出CSR或者使用openssl_csr_get_subject()函式獲取CSR的主題資訊等進一步操作。