Documentation needs to more detailed description!
The source problem was (similar to this: http://www.phpbuilder.com/board/showthread.php?t=10321977)
$exestr = "openssl pkcs12 -export -in TEST.crt -inkey MY_PRIVATE_KEY -certfile MY_CA_CERT -name blablabla -passin pass:MYPASS -passout pass:MYPASS -out TMPCERT";
that there it is possible to define "-certfile MY_CA_CERT", but not any hint how to do it with this function.
So I used to generate p12 files with openssl console tool, but once it got necessary to do that with PHP, there i spent a lot of hours, to figure out this info:
Here is example:
$args = array(
'extracerts' => $CAcert,
'friendly_name' => 'My {ID} CA signed certificate'
);
openssl_pkcs12_export($signed_csr, $cerificate_out, $private_key_resource, $passphrase, $args);
the $CAcert param, can be only string with PEM format certificate (not path, like it said in previous comment).
openssl_pkcs12_export_to_file
(PHP 5 >= 5.2.2)
openssl_pkcs12_export_to_file — Exportiert eine PKCS#12-kompatible Zertifikats-Datei
Beschreibung
bool openssl_pkcs12_export_to_file
( mixed $x509
, string $filename
, mixed $priv_key
, string $pass
[, array $args
] )
openssl_pkcs12_export_to_file() speichert x509 in der in filename angegebenen Datei im Format PKCS#12.
Parameter-Liste
- x509
-
- filename
-
Pfad zur Ausgabe-Datei.
- priv_key
-
Privater Schlüssel der PKCS#12-Datei.
- pass
-
Passwort um die PKCS#12-Datei zu entschlüsseln.
- args
-
Rückgabewerte
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
jaunakaste at inbox dot lv
03-Feb-2012 12:34
lampacz at gmail dot com
02-Jul-2009 01:13
[, array $args ] can contain only: extracerts, friendly_name
extracerts - additional certificates (can be file or string)
friendly_name - "friendly name" for the certificate and private key. This name is typically displayed in list boxes by software importing the file.
based on source code version 5.2.8 and pkcs12 man page
