【发布时间】:2011-07-22 06:54:13
【问题描述】:
我正在尝试将一些 .p12 文件转换为 .pem。
在我的 Mac 上它可以工作,当我将密码放入代码中时没有交互,但是当我使用此代码时:
system('openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12 -passin pass:');
system('openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12 -passout pass:1234 -passin pass:');
system('openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem -passin pass:1234');
system('cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem');
它会生成空白文件。
我的文件权限是 755。对于 passin,密码被设置为空,所以这就是为什么它们是空白的......这里所有没有 system() 的代码都可以在 mac 终端中运行......
感谢阅读。希望你能帮忙
【问题讨论】:
-
避免使用内置
openssl_pkcs12_read函数是否有特殊原因? -
@Charles 如果它有效我会使用它,但我不知道如何用我想要的来实现它。
-
@user,它返回的数据是一个包含私钥的数组,这似乎是您要在此处提取的内容。您应该可以使用
openssl_pkey_export_to_file或openssl_pkey_export来获取 PEM 格式的密钥。 -
@Charles 我无法让它正常工作
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12 -passin pass:我如何从一开始就在 PHP 中做到这一点,因为据我所知,它首先需要 .pem 文件,或者根本不需要拿到钥匙。