=>"openssl x509 -inform DER -in certificate.der -out certificate.pem"
=>"openssl x509 -in certificate.crt -out certificate.pem"
=>"openssl x509 -in certificate.cer -out certificate.pem"
$cerFile = 'certificate.cer';
$pemFile = 'certificate.pem';
// 讀取憑證內容
$certContent = file_get_contents($cerFile);
// 嘗試讀取憑證
$cert = openssl_x509_read($certContent);
if ($cert) {
// 將憑證轉換為 PEM 格式
openssl_x509_export($cert, $pemContent);
file_put_contents($pemFile, $pemContent);
echo "CER 已成功轉換為 PEM\n";
} else {
echo "無法解析 CER 檔案\n";
}
$crtFile = 'certificate.crt';
$pemFile = 'certificate.pem';
// 讀取憑證內容
$certContent = file_get_contents($crtFile);
// 嘗試讀取 X.509 憑證
$cert = openssl_x509_read($certContent);
if ($cert) {
openssl_x509_export($cert, $pemContent);
file_put_contents($pemFile, $pemContent);
echo "CRT 已成功轉換為 PEM\n";
} else {
echo "無法解析 CRT 檔案\n";
}
$derFile = 'certificate.der';
$pemFile = 'certificate.pem';
// 讀取 DER 憑證
$certContent = file_get_contents($derFile);
// 轉換為 PEM 格式(Base64 編碼 + PEM 標頭)
$pemContent = "-----BEGIN CERTIFICATE-----\n" .
chunk_split(base64_encode($certContent), 64, "\n") .
"-----END CERTIFICATE-----\n";
file_put_contents($pemFile, $pemContent);
echo "DER 已成功轉換為 PEM\n";
openssl_x509_read() 用於解析 X.509 憑證,適用於.cer和 .crt 文件(若為 PEM 格式)。但如果是 DER 格式的憑證,則需要先進行轉換。