做一個(gè)對(duì)接證書的項(xiàng)目,后臺(tái)使用的PHP,以前沒有弄過,搗半天,記錄如下。
對(duì)接證書需要讓用戶生成CSR證書請(qǐng)求文件,使用PHP函數(shù)openssl_csr_new()
openssl_csr_new ( array $dn , resource &$privkey [, array $configargs [, array $extraattribs ]] ) : mixed dn 在證書中使用的專有名稱或主題字段。 privkey privkey 應(yīng)該被設(shè)置為由openssl_pkey_new()函數(shù)預(yù)先生成(或者以其他方式從openssl_pkey函數(shù)集中獲得)的私鑰。該密鑰的相應(yīng)公共部分將用于簽署CSR.
一個(gè)簡(jiǎn)單的例子使用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" => "master@phpfv.com" ); // 生成私鑰 $privkey = openssl_pkey_new(array( "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, )); // 根據(jù)域名信息,私鑰生成 CSR $csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));
把CSR推送給證書商,通過驗(yàn)證后就可以下發(fā)證書了。用openssl_csr_new生成的CSR和openssl_pkey_new生成的私鑰頭部可能和其它工具生成的不一樣,并不影響使用。