【PHP8.x】openssl_pkcs12_export関数の使い方
openssl_pkcs12_export関数は、秘密鍵と証明書をPKCS#12形式(一般にPFXファイルとも呼ばれます)にエクスポートする関数です。この関数は、Webサーバーや特定のアプリケーションでSSL/TLS証明書とその秘密鍵をまとめて管理・インポートする際によく利用されます。
具体的には、エクスポートしたい証明書と、それに対応する秘密鍵、そしてPKCS#12形式のデータを保護するためのパスフレーズを受け取ります。オプションとして、追加の証明書チェーンやその他の設定を指定することも可能です。これらの情報をもとに、関数はパスフレーズで暗号化された単一のPKCS#12形式のバイナリデータを生成します。この生成されたデータは、関数の引数として指定された参照渡し$output
変数に格納されます。
処理が成功した場合、関数はtrue
を返します。もし証明書の形式が不正である、秘密鍵が提供された証明書に対応しない、あるいはその他の問題が発生した場合はfalse
を返し、適切なエラー情報が生成されます。この関数を使用することで、PHPプログラムから動的にPKCS#12データを生成し、異なるシステム間で証明書と秘密鍵を安全かつ効率的にやり取りすることが可能になります。パスフレーズはセキュリティ上非常に重要ですので、厳重な管理が必要です。
基本的な使い方
構文(syntax)
<?php
$certificate = 'path/to/certificate.pem'; // エクスポートする証明書のファイルパスまたはOpenSSLCertificateオブジェクト
$privateKey = 'path/to/private_key.pem'; // 証明書に対応する秘密鍵のファイルパスまたはOpenSSLKeyPairオブジェクト
$pkcs12Data = ''; // エクスポートされたPKCS#12データが格納される変数(参照渡し)
$passphrase = 'your_strong_passphrase'; // PKCS#12ファイルに設定するパスフレーズ
$args = []; // オプションの引数(例: ['extracerts' => [...]])
openssl_pkcs12_export(
$certificate,
$privateKey,
$pkcs12Data, // この変数にエクスポート結果が格納される
$passphrase,
$args
);
?>
引数(parameters)
OpenSSLCertificate|string $certificate, &string $output, OpenSSLAsymmetricKey|string $private_key, string $passphrase, array $options = []
- OpenSSLCertificate|string $certificate: PKCS#12 ファイルにエクスポートする証明書を指定します。
OpenSSLCertificate
オブジェクトまたは証明書の内容を表す文字列で指定できます。 - string $output: PKCS#12 ファイルの内容が格納される文字列への参照です。
- OpenSSLAsymmetricKey|string $private_key: 証明書に関連付けられた秘密鍵を指定します。
OpenSSLAsymmetricKey
オブジェクトまたは秘密鍵の内容を表す文字列で指定できます。 - string $passphrase: PKCS#12 ファイルを暗号化するためのパスフレーズを指定する文字列です。
- array $options = []: オプションを指定する連想配列です。省略可能です。
戻り値(return)
bool
openssl_pkcs12_export関数は、PKCS#12形式で証明書と秘密鍵をエクスポートできた場合にTRUEを、失敗した場合にFALSEを返します。