多年来,我一直在 ruby 1.8 上使用旧版本的 active_merchant (v1.8) 向 SagePay 支付网上商店的款项,三天前它停止工作了。我查看了日志并发现了这些错误:
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
我在网上查看并认为 SagePay 可能已放弃对 SSL3 的支持,所以我尝试设置:
http.ssl_version = :TLSv1
但是我得到了同样的错误。我试过设置:
http.ssl_version = :SSLv2
但得到了这个错误:
ActiveMerchant::ConnectionError (The remote server reset the connection):
我现在有点不知所措。我假设 SagePay 现在只接受某种协议(protocol),但它不接受我的任何请求。
关于如何调试这种情况有什么建议吗?!
我在周五发布了以下内容,但我的回答似乎已被删除。
如果证书验证失败,则可能由于缺少根证书和/或中间证书而无法验证 Sagepay 证书。
SagePay 最近已迁移到 DigiCert。禁用 SSL2 和 SSL3。
我是一名优秀的程序员,十分优秀!