函数名: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的主题信息等进一步操作。