当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP openssl_pkcs12_export_to_file()用法及代码示例


openssl_pkcs12_export_to_file()函数是PHP中的内置函数,用于将x509存储到以PKCS#12文件格式的文件名命名的文件中。 PKCS12是Public-Key加密标准,定义了用于存储服务器证书的archive-file格式。

用法:

bool openssl_pkcs12_export_to_file( mixed $x509, string $filename,
        mixed $priv_key, string $pass [, array $args ])

参数:该函数接受上述和以下所述的两个参数:

  • $x509:此参数是定义公钥证书格式的标准。
  • $filename:此参数是输出文件的路径。
  • $priv_key:此参数用于与甜点“priv_key”匹配的私钥。私钥是PKCS#12文件的组成部分。
  • $pass:此参数用于解锁PKCS#12文件的加密密码。
  • $args:此参数代表参数和变量,它们是代表其他内容的值。

返回值:如果成功,则此函数返回TRUE;如果失败,则返回FALSE。

以下示例程序旨在说明PHP中的openssl_pkcs12_export_to_file()函数:



程序:

PHP

<?php 
$dn = array( 
    "countryName" => 'xx', 
    "stateOrProvinceName" => 'uttar prradesh', 
    "localityName" => 'varanasi', 
    "organizationName" => 'geeksforgeeks', 
    "organizationalUnitName" => 'geeks team', 
    "commonName" => 'people', 
    "emailAddress" => 'user@geeks.com'
); 
   
$privateKeyPass = 'abcd1234'; 
$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); 
   
$filename = dirname(__FILE__)  
        . '/certificate.pfx'; 
   
// Parses the $privateKey and used  
// by openssl_pkcs12_export_to_file 
$key = openssl_pkey_get_private( 
    $privateKey, $privateKeyPass); 
   
// Save the pfx file to $filename 
openssl_pkcs12_export_to_file($sscert,  
    $filename, $key, $privateKeyPass); 
?>

输出:

people
Identity:people
Verified by:people
Expires:Wednesday 16 December 2020

Subject Name
C (Country):xx
ST (State):uttar prradesh
L (Locality):varanasi
O (Organization):geeksforgeeks
OU (Organizational Unit):geeks team
CN (Common Name):people
EMAIL (Email Address):user@geeks.com
Issuer Name
C (Country):xx
ST (State):uttar prradesh
L (Locality):varanasi
O (Organization):geeksforgeeks
OU (Organizational Unit):geeks team
CN (Common Name):people
EMAIL (Email Address):user@geeks.com
Issued Certificate
Version:3
Serial Number:00
Not Valid Before:2020-08-30
Not Valid After:2020-12-16
Certificate Fingerprints
SHA1:95 D9 8E BB C0 9A 6D 33 C7 98 07 B9 36 F7 12 8E BB 54 4B 50
MD5:64 7D 63 13 EB 80 55 C2 9D F8 41 DF 0E 7E 75 54
Public Key Info
Key Algorithm:RSA
Key Parameters:05 00
Key Size:2048
Key SHA1 Fingerprint:25 F6 E2 26 5E 1E 7D B1 10 82 02 9D F3 05 1A 72 3B C4 9B 7C
Public Key:30 82 01 0A 02 82 01 01 00 C4 CC 93 62 F9 D2 C9 39 5F F1 15 13 A2 2D 34 93 4C AD 45 E8 7E AE CE 24
 C6 FA 2B 99 6B FE B7 F7 30 D6 95 DA 3A 1C FB 1E BC 8F A6 C6 9D A4 03 3E 46 16 56 AB A5 78 32 2A C3 D3 FA 79 C
 3 5B 38 02 07 22 E6 6C 51 C9 B9 5C 44 AE 65 D3 0F ED F9 80 F4 1D 01 66 11 8A E1 78 55 DA C2 2E 72 3E 8E D3 D2
  CB 4C 40 0B 0E 55 BD EF 26 A1 21 E7 62 43 39 4B EF EE EB 85 40 11 E3 A9 44 D8 B2 FB 1B 46 13 1E 25 A0 8E 9D 
  F3 BA 1B F7 80 A8 1A 87 97 20 CE C0 1E 45 11 9A 94 F0 68 71 BA 7B 86 5F A8 55 69 E8 D4 C1 D0 E0 75 72 7E 3E 
  A1 6D B4 8B 2A 8C D2 69 2D E2 F8 F4 09 8A 8B 42 1E 1B C1 93 66 06 A8 AD FF 31 3F E5 D9 10 07 A8 AC 7E B9 69 
  9E CA 67 1B 83 99 5E 3E 58 26 28 60 A5 BC 45 92 4A C4 A3 16 6B 33 62 E4 AA 77 FA 28 90 01 40 2F 0E 7D D8 B7 
  3C E9 A6 B3 25 DB 07 E1 0F D6 CE 0E B4 42 B3 02 03 01 00 01
Subject Key Identifier
Key Identifier:03 D6 83 8F E6 36 C2 08 39 F5 2B 0C D2 FA 17 3C 21 32 C6 EF
Critical:No
Extension
Identifier:2.5.29.35
Value:30 16 80 14 03 D6 83 8F E6 36 C2 08 39 F5 2B 0C D2 FA 17 3C 21 32 C6 EF
Critical:No
Basic Constraints
Certificate Authority:Yes
Max Path Length:Unlimited
Critical:Yes
Signature
Signature Algorithm:SHA1 with RSA
Signature Parameters:05 00
Signature:B2 D0 04 4E 62 8F 8F 30 7D 19 62 6E AB 6F AC 01 0A 2C 11 A6 19 09 73 21 35 74 89 3A ED CB 91 2E E4
 50 77 CC 1A E9 7E 43 B5 E6 83 6F 3E EC 0F 5A 91 EB C4 99 37 08 76 12 2D 26 95 AD F6 7B A7 3F 42 CE 4F 5E 1A 
 C6 DD 71 66 73 30 2A 87 FB CC BE 7C B9 82 AA 09 AE 88 EC D4 C4 78 20 6B FA 08 B4 65 C3 D1 1D BB 78 B9 4B B2 
 E7 00 3C 62 4B EF 74 4B 2D BE 15 BD E1 A0 DE 9B 82 2B 24 F8 01 CD 90 30 C9 2F 87 6C B5 85 54 84 F3 7F A4 5C 
 3F 74 22 B1 3E 60 DB 81 4C C1 23 52 00 FD 4D 53 F3 02 17 EE AE E8 1F 24 02 81 DF B7 49 EA 8B 93 41 78 DA 4D 
 9E 34 B2 F4 E0 68 69 AA A9 0E ED 17 04 EA 6F FD C2 27 96 BC 1C A2 53 E8 80 AE 51 D1 F2 00 34 44 A0 5E AE F4 
 35 E4 CB 1D 61 F8 CB 25 B4 28 7C 7A 5C 82 8A 08 7B A2 DB E9 BA 67 CC FB C6 34 D3 D5 2D 8C C6 12 7F 5C BF 18 
 FA 7D CA 40 67 17 15


certificate.pfx
Private RSA Key
Strength:2048 bits

Algorithm:RSA
Size:2048
Fingerprints
SHA1:25 F6 E2 26 5E 1E 7D B1 10 82 02 9D F3 05 1A 72 3B C4 9B 7C
SHA256:D8 63 1A 26 8D AE 7D 56 67 48 6E AA D3 8D B1 D7 8F 4A C2 C4 D6 D8 58 BA 32 53 AB D1 93 72 40 6F

参考: https://www.php.net/manual/en/function.openssl-pkcs12-export-to-file.php




相关用法


注:本文由纯净天空筛选整理自shubham_singh大神的英文原创作品 PHP openssl_pkcs12_export_to_file() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。