openssl_x509_export_to_file:无法从参数1获取证书

时间:2013-05-23 08:12:39

标签: php openssl

我通过证书签名请求获得了iOS开发中心生成的Apple推送通知开发推送SSL证书。

我想使用PHP转换证书格式。在Terminal / shell中,我可以执行此命令来转换证书格式:

openssl x509 -in aps_developer_identity.cer -inform der -out push_cert.pem

在PHP中,我有:

$result = openssl_x509_export_to_file('/path/to/aps_developer_identity.cer', '/path/to/push_cert.pem');

然而,PHP发出警告:

openssl_x509_export_to_file() : cannot get cert from parameter 1

PHP documentation中,它表示第一个参数可以是证书文件的文件路径。

鉴于:

  • 证书存在且可由PHP脚本访问,
  • 输出路径有效且具有写入权限,
  • 已安装PHP openssl模块
  • 使用PHP 5.3.10
  • 使用Ubuntu 12.04 LTS

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

来自phpseclib, a pure PHP X.509 implementation

"-----BEGIN CERTIFICATE-----\r\n" .
chunk_split(base64_encode($cert), 64) .
'-----END CERTIFICATE-----'