php使用openssl_csr_new()生成CSR

程序猿 2021-03-25 11:29:11 207浏览 加载中

做一个对接证书的项目,后台使用的PHP,以前没有弄过,捣半天,记录如下。

对接证书需要让用户生成CSR证书请求文件,使用PHP函数openssl_csr_new()

openssl_csr_new ( array $dn , resource &$privkey [, array $configargs [, array $extraattribs ]] ) : mixed
dn
在证书中使用的专有名称或主题字段。
privkey
privkey 应该被设置为由openssl_pkey_new()函数预先生成(或者以其他方式从openssl_pkey函数集中获得)的私钥。该密钥的相应公共部分将用于签署CSR.

一个简单的例子使用openssl_csr_new生成CSR

// 收集域名信息
$dn = array(
    "countryName" => "CN",
    "stateOrProvinceName" => "ZZ",
    "localityName" => "ZZ",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "phpfv.com",
    "emailAddress" => "[email protected]"
);

// 生成私钥
$privkey = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));

// 根据域名信息,私钥生成 CSR
$csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));

把CSR推送给证书商,通过验证后就可以下发证书了。用openssl_csr_new生成的CSR和openssl_pkey_new生成的私钥头部可能和其它工具生成的不一样,并不影响使用。

标签: php 函数
最后修改:2021-11-28 09:52:09

非特殊说明,本博所有文章均为博主原创。