贝宝wps,获取私钥时出错



我正在使用贝宝wps。

在我转换为商业证书之前,这是以前使用ssl的。

我已经重新完成了将我的公共cert.pem文件上传到PayPal的过程,包括实时帐户和沙箱。我下载了他们给我的证书,并把它放在我的服务器上自己的特殊位置。我有一个用于Live和Sandbox。我还复制了Live和Sandbox的证书ID。

然而,现在我得到的错误像:

A PHP Error was encountered
Severity: Notice
Message: Undefined index: encrypted_data
Filename: paypal_integration/paypal-wps_helper.php
Line Number: 206

当我从signAndEncrypt函数(PPCrypto文件)内的openssl_pkcs7_sign(…)函数中删除"@"字符时,我也会在上面显示的错误之前得到这个错误:

Severity: Warning
Message: openssl_pkcs7_sign(): error getting private key
Filename: paypal_integration/PPCrypto.php
Line Number: 42

现在,我记得看到我的旧私钥(在切换到商业证书之前),它的权限被设置为世界可读,我想知道我是如何做到这一点的。然而,我决定尝试将我的证书恢复到旧证书(非商业),但仍然收到了上述错误。然后,我尝试将私钥设置回世界可读,尽管我在PayPal上收到了臭名昭著的"无法解密"消息,但这些错误都消失了。

我应该让我的私钥世界可读吗?这看起来既愚蠢又危险,所以我对此表示怀疑。但这解释了我上次是如何"疏忽"地让我的私钥世界可读的。

我甚至不会尝试用我的新证书将私钥设置为世界可读,因为那样我会觉得在暴露私钥后需要重新购买新证书。

希望经历过类似问题的人能就此事提供一些建议。谢谢

好的。此问题已解决。我错误地认为我需要使用与ssl证书相同的密钥。

我只为PayPal重新创建了新的密钥,现在它又开始工作了。

我还使用chown将所有权从root:root更改为root:www数据和私钥上的chmod440。我不喜欢这样,我会进一步研究,但它现在正在发挥作用。

最新更新