查询

openssl_csr_sign()函数—用法及示例

「 使用给定的CSR(Certificate Signing Request)进行签名,并生成一个SSL证书 」


函数名称:openssl_csr_sign()

适用版本:PHP 4 >= 4.2.0, PHP 5, PHP 7

函数描述:openssl_csr_sign() 函数用于使用给定的CSR(Certificate Signing Request)进行签名,并生成一个SSL证书。

语法:bool openssl_csr_sign(resource $csr, mixed $cacert, mixed $priv_key, int $days[, array $configargs[, int $serial]]): resource|false

参数:

  • $csr:CSR资源,通过openssl_csr_new()函数生成。
  • $cacert:CA证书资源,通过openssl_x509_read()函数读取。
  • $priv_key:私钥资源,通过openssl_pkey_get_private()函数获取。
  • $days:证书的有效期(天数)。
  • $configargs:可选参数,用于指定额外的配置选项,如扩展信息等。默认值为NULL。
  • $serial:可选参数,证书的序列号。默认值为0。

返回值:

  • 成功时返回生成的SSL证书资源。
  • 失败时返回false。

示例:

// 生成CSR(Certificate Signing Request)
$dn = array(
    "countryName" => "CN",
    "stateOrProvinceName" => "Beijing",
    "organizationName" => "Example Company",
    "commonName" => "www.example.com"
);
$privateKey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privateKey);

// 读取CA证书和私钥
$cacert = openssl_x509_read(file_get_contents("ca.crt"));
$privKey = openssl_pkey_get_private(file_get_contents("private.key"));

// 签名CSR并生成SSL证书
$days = 365; // 证书有效期为1年
$cert = openssl_csr_sign($csr, $cacert, $privKey, $days);

// 将生成的SSL证书保存到文件
openssl_x509_export_to_file($cert, "ssl_cert.crt");

// 输出生成的SSL证书内容
echo openssl_x509_export($cert);

注意事项:

  • 在使用openssl_csr_sign()函数之前,需要先生成CSR和私钥,以及获取CA证书和私钥资源。
  • 可以使用openssl_pkey_new()函数生成私钥,openssl_csr_new()函数生成CSR,openssl_x509_read()函数读取CA证书,openssl_pkey_get_private()函数获取私钥资源。
  • 可以使用openssl_x509_export_to_file()函数将生成的SSL证书保存到文件,使用openssl_x509_export()函数输出生成的SSL证书内容。
  • 证书有效期的单位是天,可以根据实际需求设置合适的有效期。
  • 可以通过配置选项参数$configargs来指定额外的配置信息,如扩展信息等。
  • 可以通过$serial参数设置证书的序列号,若不指定则默认为0。
补充纠错
上一个函数: openssl_decrypt()函数
下一个函数: openssl_csr_new()函数
热门PHP函数
分享链接