PHP Openssl 生成公钥私钥
Posted 小赖儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Openssl 生成公钥私钥相关的知识,希望对你有一定的参考价值。
1 <?php 2 //配置信息 3 $dn = array( 4 "countryName" => "GB", 5 "stateOrProvinceName" => "Somerset", 6 "localityName" => "Glastonbury", 7 "organizationName" => "The Brain Room Limited", 8 "organizationalUnitName" => "PHP Documentation Team", 9 "commonName" => "Wez Furlong", 10 "emailAddress" => "[email protected]" 11 ); 12 13 $config = array( 14 "private_key_bits" => 512, //指定应该使用多少位来生成私钥 512 1024 2048 4096等 15 "private_key_type" => OPENSSL_KEYTYPE_RSA, //选择在创建CSR时应该使用哪些扩展。可选值有 OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA 或 OPENSSL_KEYTYPE_EC. 默认值是 OPENSSL_KEYTYPE_RSA. 16 ); 17 // 生成证书 18 $privkey = openssl_pkey_new($config); 19 $csr = openssl_csr_new($dn, $privkey); 20 $sscert = openssl_csr_sign($csr, null, $privkey, $numberofdays); 21 // 导出证书$csrkey 22 openssl_x509_export($sscert, $csrkey); 23 // 导出密钥$privatekey 24 openssl_pkcs12_export($sscert, $privatekey, $privkey, $privkeypass); 25 // 获取私钥 26 openssl_pkcs12_read($privatekey, $certs, $privkeypass); 27 if (empty($certs[‘pkey‘])) { 28 $arr = array(); 29 } 30 $prikeyid = $certs[‘pkey‘]; 31 // 获取公钥 32 $pub_key = openssl_pkey_get_public($csrkey); 33 $keyData = openssl_pkey_get_details($pub_key); 34 if (empty($keyData[‘key‘])) { 35 $arr = array(); 36 } 37 $public = $keyData[‘key‘]; 38 $arr = array(‘publicKey‘=>$public,‘privateKey‘=>$prikeyid); 39 print_r($arr); 40 ?>
以上是关于PHP Openssl 生成公钥私钥的主要内容,如果未能解决你的问题,请参考以下文章