opensl_pkcs12_export()函数是PHP中的内置函数,用于以PKCS#12文件格式存储在名为x509的字符串中。证书存储文件对应于PKCS#12变量。
用法:
bool openssl_pkcs12_export( mixed $x509, string &$out, mixed $priv_key, string $pass [, array $args] )
参数:该函数接受上述和以下所述的五个参数:
- $x509:此参数是定义公钥证书格式的标准。
- $out:这是通过引用传递的变量,该变量在成功执行以上函数时将保持PKCS#12。
- $priv_key:此参数用于与甜点“priv_key”匹配的私钥。私钥是PKCS#12文件的组成部分。
- $pass:此参数用于解锁PKCS#12文件的加密密码。
- $args:“$args”代表参数,变量是代表其他内容的值。
返回值:如果成功,则此函数返回TRUE;如果失败,则返回FALSE。
以下示例程序旨在说明PHP中的openssl_pkcs12_export()函数:
程序:
PHP
<?php
$dn = array(
"countryName" => 'xx',
"stateOrProvinceName" => 'uttar prradesh',
"localityName" => 'varanasi',
"organizationName" => 'geeksforgeeks',
"organizationalUnitName" => 'geeks team',
"commonName" => 'people',
"emailAddress" => 'user@geeks.com'
);
$privateKeyPass = 'dummyPassword';
$numberOfDays = 108;
$privateKey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privateKey);
// Create a csr file, change null
// to a filename to save
$sscert = openssl_csr_sign($csr,
null, $privateKey, $numberOfDays);
// On success $publicKey will
// hold the PEM content
openssl_x509_export($sscert, $publicKey);
// Export the privateKey as a PEM content
openssl_pkey_export($privateKey,
$privateKey, $privateKeyPass);
// Parses the $privateKey and used
// by openssl_pkcs12_export_to_file.
$key = openssl_pkey_get_private(
$privateKey, $privateKeyPass);
$certificateOutput = null;
// Save the pfx file to $certificateOutput
openssl_pkcs12_export($sscert,
$certificateOutput, $key, $privateKeyPass);
// openssl_pkcs12_read to read the pkcs12
// certificate and store into array
openssl_pkcs12_read ( $certificateOutput,
$readableOutput, $privateKeyPass );
var_dump(($readableOutput));
?>
输出:
array(2) { ["cert"]=> string(1444) "-----BEGIN CERTIFICATE----- MIID/DCCAuSgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBljELMAkGA1UEBhMCeHgx FzAVBgNVBAgMDnV0dGFyIHBycmFkZXNoMREwDwYDVQQHDAh2YXJhbmFzaTEWMBQG A1UECgwNZ2Vla3Nmb3JnZWVrczETMBEGA1UECwwKZ2Vla3MgdGVhbTEPMA0GA1UE AwwGcGVvcGxlMR0wGwYJKoZIhvcNAQkBFg51c2VyQGdlZWtzLmNvbTAeFw0yMDA4 MzExODI2MjRaFw0yMDEyMTcxODI2MjRaMIGWMQswCQYDVQQGEwJ4eDEXMBUGA1UE CAwOdXR0YXIgcHJyYWRlc2gxETAPBgNVBAcMCHZhcmFuYXNpMRYwFAYDVQQKDA1n ZWVrc2ZvcmdlZWtzMRMwEQYDVQQLDApnZWVrcyB0ZWFtMQ8wDQYDVQQDDAZwZW9w bGUxHTAbBgkqhkiG9w0BCQEWDnVzZXJAZ2Vla3MuY29tMIIBIjANBgkqhkiG9w0B AQEFAAOCAQ8AMIIBCgKCAQEA6LqzqnM6jmxF3vK7tBQo10rnJnLaox5U2MCds2WF tnQY3NTdcFA/nLWkis+yacymBEXVFyBk9wWk91gTMnDG5vRgE/k47x2YjRinbnuC zlFtozXYNaZE44oT3r1pTrJ7EvK2QyAV8iKtvSwzWm4AJz+/Fbs69FKpPzbGbRX8 aYalfD/D2m/OBFQRyYJNKKCJT/BTleXrk9gfEtGo9OWz5cMiqgRZMdoZ9ZqmwAUf mShOWs63KyA37ncpS3LdMy2bz5sypBdrNVRGcoGIX7QqHGQVYd2YcDpJVdOk/or2 xTfTLhUtVKNrT9C11i95FK4C+qUma5f/BmTFfjJYwvC2mwIDAQABo1MwUTAdBgNV HQ4EFgQU2czXSXWN7NfuYuTmhoQ4mwLuIf0wHwYDVR0jBBgwFoAU2czXSXWN7Nfu YuTmhoQ4mwLuIf0wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA M7U6Rvx8SopjVdYyZVgYooWnV3mEO8XUb3qatLAkCQr8DLEVuKih71atG1dCFQQX UorI7SlcneXzBoYzGLy1Y/CVcwX9H5AAdmXtoRLURvf2QpPXll5u81a4TE8xrlpI CpqvWhKbRgk/ED5BwhLus531p4hGpijkH/qRvxg7VG1MBpo8liRxj73Am1ksc3yU 3HNkNjB6+YutR2YOc3x0JYUNVakwtQJkGqQOrGgKTsgEfnidvGeRLT03/3FleKef V6T9UXROb9qXvNRR1B1/NH70WNxYNDoawebW4qs4ujd0DqR/tKPUDxaI2aT7fAJq ZEgo7iC17x6qTzy1RmnBDQ== -----END CERTIFICATE----- " ["pkey"]=> string(1704) "-----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDourOqczqObEXe 8ru0FCjXSucmctqjHlTYwJ2zZYW2dBjc1N1wUD+ctaSKz7JpzKYERdUXIGT3BaT3 WBMycMbm9GAT+TjvHZiNGKdue4LOUW2jNdg1pkTjihPevWlOsnsS8rZDIBXyIq29 LDNabgAnP78Vuzr0Uqk/NsZtFfxphqV8P8Pab84EVBHJgk0ooIlP8FOV5euT2B8S 0aj05bPlwyKqBFkx2hn1mqbABR+ZKE5azrcrIDfudylLct0zLZvPmzKkF2s1VEZy gYhftCocZBVh3ZhwOklV06T+ivbFN9MuFS1Uo2tP0LXWL3kUrgL6pSZrl/8GZMV+ MljC8LabAgMBAAECggEAUKOAZWsPuxGhFCMfDsJ9dDur5BKf1y1HUONMwUBIGHQZ uUq4f5YOtInrvX1B4I7cZ1abAyxiT4VRJ7MI081n3daHA+Sy6YdjuF/2g72gEUT9 rDOX+t7lt8G8KM2Qk4gcRPB8Xr3bXM7PTGDoWkkLHI5l822we7+4jQK5tkqL7zPj J8mLpntkERWdZcX2MsH0F0gdFz1QxRuQEKqoE2Jo+ZjW+aUR1MGPp0lLAiZSl3sD /wQa7UqU01IZHy+KIMEGHWkoJqdufMw+WxqVLap5RuWvV6hufdcocIlsnhWt83Iq G35GavGJWG3kWVzXftZN6x9X+5rr65yO8rxxqGwwIQKBgQD6FRGHkEmKV99/mmh6 w7UY6JUjvrIdSq6bD8qf+LcNdMLf9Ucl9+XrYPaHlOMrtoxG2eqh0SfViW/hvCwO kf5izmemfkPTVqCZGVmxEU/A2TEV/LZEGi2t7s333oK8eIMqgTf8ZO5VP0Dz1X4y F6hLVyNkO9NW+Fd/4i+7cL6X9wKBgQDuPIN4T00Pz1be/IMpjaNYq5Tbs7stuRUT I2toENo6zSc3LdEMJ3jYNzH2XU65D92xQqjl2fnNso681dd0ZIrSY0ofP086kT6I JyKydh/KJ5Fx39AAtK73N74NuPdFmwh4uKyl8TIson6/nwFDylDtDy18zGSQ5JrW xpYF7hDVfQKBgQCwjM0qUk/Irg6n7B9Ug/PG2PPpH0hpa37nE3fuBc1dX4/wQh3v jRoxWOvSfeb+xkoz/sYpZRplIzjsOUc1JhZcNPFx1fQWMDMCwqXSXrFaKTsBFb6r R3v2LgAUvG65la6sBDu9IJgtcJFvUspbnN4ACk1/BslFvd8v9kPSZV74swKBgB5e NFwHr8kOIwK1qXqIhYPuC0GePYPsjdUstKpFS6wnLpKIEpe8CFl3X7UJ29kXPqkz 2BfEm2UvF6bWk2pQzqlW4sHs7gqHLTNp2bBqAk9gj9e2MeuFHLCCuIVDSLHku0W4 NLnKbxzlcca3XA/qIDq3rpKz8zXNDjfGhKUo3Zh5AoGBAIUC/NP0AwYX3jlLy7I1 eyu9FfLC7ZOLYW0FD7qm5B9CtGgLCKjOaRbaUl2M3Zm2YQ5f+hVrJxViA7SRf383 QkTVFmtvz5zkBjCPNOV4TedrPAgcDy0qgCjiGWzWi86fBBXV6UjgYX65txm7I+kz fZ4o9fUosret4HH3hX8xkM35 -----END PRIVATE KEY----- " }
参考: https://www.php.net/manual/en/function.openssl-pkcs12-export.php
相关用法
- PHP imagecreatetruecolor()用法及代码示例
- PHP fpassthru( )用法及代码示例
- PHP ImagickDraw getTextAlignment()用法及代码示例
- PHP Ds\Sequence last()用法及代码示例
- PHP Imagick floodFillPaintImage()用法及代码示例
- PHP array_udiff_uassoc()用法及代码示例
- PHP geoip_continent_code_by_name()用法及代码示例
- PHP GmagickPixel setcolor()用法及代码示例
- PHP opendir()用法及代码示例
- PHP cal_to_jd()用法及代码示例
- PHP stream_get_transports()用法及代码示例
- PHP Ds\Deque pop()用法及代码示例
- PHP SimpleXMLElement children()用法及代码示例
- PHP array_intersect_ukey()用法及代码示例
- PHP is_numeric()用法及代码示例
- PHP Imagick adaptiveSharpenImage()用法及代码示例
- PHP XMLWriter endDtdEntity()用法及代码示例
- PHP isset()用法及代码示例
注:本文由纯净天空筛选整理自shubham_singh大神的英文原创作品 PHP openssl_pkcs12_export() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。