函式名稱:openssl_pkcs12_export()
適用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7
函式描述:openssl_pkcs12_export() 函式將一個PKCS#12格式的證書和私鑰匯出到一個字串中。
用法: openssl_pkcs12_export(mixed $x509, string &$out, mixed $priv_key, string $pass [, array $args])
引數說明:
- $x509:必需,表示X.509證書的資源控制代碼或證書的檔案路徑。
- &$out:必需,將匯出的PKCS#12格式的證書和私鑰儲存到此字串中。
- $priv_key:必需,表示私鑰的資源控制代碼或私鑰的檔案路徑。
- $pass:必需,表示匯出的PKCS#12檔案的密碼。
- $args:可選,表示一個關聯陣列,用於指定一些可選引數,如加密演算法、金鑰長度等。
返回值:成功時返回 TRUE,失敗時返回 FALSE。
示例:
// 從檔案中載入證書和私鑰
$certFile = 'cert.pem';
$keyFile = 'key.pem';
$passphrase = 'password';
$cert = openssl_x509_read(file_get_contents($certFile));
$key = openssl_pkey_get_private(file_get_contents($keyFile), $passphrase);
// 匯出PKCS#12格式的證書和私鑰到字串
if (openssl_pkcs12_export($cert, $p12, $key, $passphrase)) {
// 儲存到檔案
file_put_contents('cert.p12', $p12);
echo 'PKCS#12證書匯出成功!';
} else {
echo 'PKCS#12證書匯出失敗!';
}
// 釋放資源
openssl_x509_free($cert);
openssl_pkey_free($key);
注意事項:
- 證書和私鑰可以是資源控制代碼或檔案路徑。
- 匯出的PKCS#12檔案通常用於將證書和私鑰打包成一個檔案便於傳輸或儲存。
- 匯出的PKCS#12檔案需要密碼保護,確保私鑰的安全性。
- 匯出的PKCS#12檔案可以透過openssl_pkcs12_read()函式來解析和使用。
- 在使用完資源後,應該使用openssl_x509_free()和openssl_pkey_free()函式釋放資源,避免記憶體洩漏。