Friday, October 17, 2025
HomeLanguagesPHP openssl_pkcs12_export_to_file() Function

PHP openssl_pkcs12_export_to_file() Function

The openssl_pkcs12_export_to_file() function is an inbuilt function in PHP which is used to store x509 into a file named by filename in a PKCS#12 file format. PKCS12 is Public-Key Cryptography Standards which defines an archive-file format for storing server certificates.

Syntax:

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

Parameters: This function accepts two parameters as mentioned above and described below:

  • $x509: This parameter is a standard defining the format of the public key certificates.
  • $filename: This parameter is the path of the output file.
  • $priv_key: This parameter is used for the private key that matches the dessert “priv_key”. The private key is a component of the PKCS # 12 file.
  • $pass: This parameter is used for the encryption password for unlocking the PKCS#12 file.
  • $args: This parameter stands for the arguments and variables which are values representing something else.

Return Values: This function returns TRUE on success or FALSE on failure.

Below program illustrates the openssl_pkcs12_export_to_file() function in PHP:

Program: 

PHP




<?php
$dn = array(
    "countryName" => 'xx',
    "stateOrProvinceName" => 'uttar prradesh',
    "localityName" => 'varanasi',
    "organizationName" => 'neveropen',
    "organizationalUnitName" => 'neveropen team',
    "commonName" => 'people',
    "emailAddress" => 'user@neveropen.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);
?>


Output:

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

Subject Name
C (Country): xx
ST (State): uttar pradesh
L (Locality): varanasi
O (Organization): neveropen
OU (Organizational Unit): neveropen team
CN (Common Name): people
EMAIL (Email Address): user@neveropen.com
Issuer Name
C (Country): xx
ST (State): uttar pradesh
L (Locality): varanasi
O (Organization): neveropen
OU (Organizational Unit): neveropen team
CN (Common Name): people
EMAIL (Email Address): user@neveropen.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

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

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS