PHP openssl_csr_sign OpenSSL 函数
-
定义和用法
openssl_csr_sign - 用另一个证书签署 CSR (或者本身) 并且生成一个证书 -
版本支持
PHP4 PHP5 PHP7 支持 支持 支持 -
语法
openssl_csr_sign( mixed $csr , mixed $cacert , mixed $priv_key , int $days [, array $configargs [, int $serial = 0 ]] )
openssl_csr_sign() 从给定的 CSR 生成一个x509证书资源.注意: 必须安装有效的 openssl.cnf 以保证此函数正确运行。
-
参数
参数 必需的 描述 csr 是 由openssl_csr_new()函数生成的CSR. 也可以是由类似file://path/to/csr格式指定的指向PEM编码的CSR路径,或者是一个由openssl_csr_export()函数生成的字符串。 cacert 是 生成的证书将由cacert签名。 如果cacert 为 NULL, 生成的证书将是自签名证书。 priv_key 是 priv_key是cacert证书对应的私钥。 days 是 days 指定生成的证书在几天内有效的时间长度。 configargs 否 你可以通过configargs确定CSR签名。 查openssl_csr_new() 方法获取 configargs的更多相关信息。 serial 否 可选的发行证书编号。如果没有指定默认值为0. -
返回值
成功,返回一个 x509 证书资源,失败则返回 FALSE . -
示例
// Let's assume that this script is set to receive a CSR that has // been pasted into a textarea from another page $csrdata = $_POST["CSR"]; // We will sign the request using our own "certificate authority" // certificate. You can use any certificate to sign another, but // the process is worthless unless the signing certificate is trusted // by the software/users that will deal with the newly signed certificate // We need our CA cert and its private key $cacert = "file://path/to/ca.crt"; $privkey = array("file://path/to/ca.key", "your_ca_key_passphrase"); $usercert = openssl_csr_sign($csrdata, $cacert, $privkey, 365, array('digest_alg'=>'sha256') ); // Now display the generated certificate so that the user can // copy and paste it into their local configuration (such as a file // to hold the certificate for their SSL server) openssl_x509_export($usercert, $certout); echo $certout; // Show any errors that occurred here while (($e = openssl_error_string()) !== false) { echo $e . "\n"; }
-
相关页面
openssl_csr_new() - 生成一个 CSR