openssl_pkcs12_read

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

openssl_pkcs12_readPKCS#12 证书存储区解析到数组中

说明

openssl_pkcs12_read(string $pkcs12, array &$certificates, string $passphrase): bool

openssl_pkcs12_read()pkcs12 提供的 PKCS#12 证书存储区解析到以 certificates 命名的变量中。

参数

pkcs12

证书存储内容,而不是它的文件名。

certificates

成功,将保存证书存储数据

passphrase

用来解锁 PKCS#12 文件的解密密码

返回值

成功时返回 true, 或者在失败时返回 false

示例

示例 #1 openssl_pkcs12_read() 示例

<?php
if (!$cert_store = file_get_contents("/certs/file.p12")) {
echo
"Error: Unable to read the cert file\n";
exit;
}

if (
openssl_pkcs12_read($cert_store, $cert_info, "my_secret_pass")) {
echo
"Certificate Information\n";
print_r($cert_info);
} else {
echo
"Error: Unable to read the cert store.\n";
exit;
}
?>
add a note add a note

User Contributed Notes 1 note

up
-25
bromatom at directbox dot com
15 years ago
To extract the contents of a PKCS12 file you can use file_get_contents as well:

<?
  $certs = array();
  $pkcs12 = file_get_contents( "pkcs12file.pem" );
  // No password
  openssl_pkcs12_read( $pkcs12, $certs, "" );
  print_r( $certs );
?>

Output is:
Array
(
  [cert] => --- BEGIN CERTIFICATE ---
  //snipsnip//
  --- END CERTIFICATE ---
  [pkey] => --- BEGIN RSA PRIVATE KEY ---
  //snipsnip//
  [extracerts] = Array
  (
  )
)
To Top