我正在使用paypal-wps。
在我转换为商业证书之前,我之前使用过ssl。
我重新完成了将公共cert.pem文件上传到PayPal的实时帐户和沙箱的过程。我下载了他们给我的证书,并把它放在我自己特殊位置的服务器上。 Live和Sandbox都有一个。我还复制了Live和Sandbox的Cert Ids。
然而,现在我收到的错误如下:
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上得到了臭名昭着的“无法解密”消息。
我想我的私钥世界是否可读?这看起来很愚蠢也很危险,所以我对此表示怀疑。但这解释了我上次让我的私钥世界可读时“疏忽”。
我甚至不打算尝试使用我的新Certs将私钥设置为世界可读,因为我觉得在暴露我的私钥后我需要重新购买新证书。
希望遇到类似问题的人可以就此事提供一些建议。谢谢!
答案 0 :(得分:0)
好。这已经解决了。我错误地认为我需要使用与我的ssl证书相同的密钥。
我专门为PayPal重新创建了新密钥,现在又重新开始了。
我还使用chown从root更改所有权:root到root:私钥上的www-data和chmod 440。我不喜欢这样,并会进一步研究它,但它现在正在发挥作用。