我正在尝试使用Stripe和我的Ruby应用程序并继续收到此错误:
Error! Could not verify Stripe's SSL certificate. Please make sure that your network is not intercepting certificates. (Try going to https://api.stripe.com/v1 in your browser.) If this problem persists, let us know at support@stripe.com. (Network error: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed).
为什么我会这样?任何帮助将不胜感激。
谢谢!
答案 0 :(得分:2)
Stripe的Ruby绑定验证Stripe服务器(api.stripe.com
)上的HTTPS证书,以确保您真正与Stripe通信,而不是与恶意第三方(也称为恶意第三方)通信" man-in-the-middle attack"。)
导致此错误的原因有很多。首先,您应该确保使用以下最新版本:
如果您在公司环境中工作,您的防火墙可能会替换HTTPS证书,以便能够解密HTTPS流量。 (这与中间人攻击基本相同。)
如果您仍然遇到此问题,可以通过添加以下行来停用SSL验证:
Stripe.verify_ssl_certs = false
但是,我会强烈建议不要这样做。 可能在开发环境中没问题,但您应该从不在生产环境中执行此操作。
编辑:我们目前正在调查this issue - 它似乎可能是在最新版本的stripe-ruby gem中引入的。目前,它似乎降级到版本1.34.0将修复"无法验证Stripe的SSL证书"问题。
答案 1 :(得分:1)
打开终端。 运行命令$ curl -v https://api.stripe.com
对于像我这样的间歇性问题,您可能不得不连续10到20次运行此命令。然后停止并重新开始,直到看到错误。
它尝试连接的IP地址应与您要访问的域的IP地址匹配。对于条带,您可以在https://stripe.com/docs/ips
处检查有效的IP地址如果IP地址不匹配,或者IP地址与您的网络相同,那么您可能正在遭受中间攻击。
就我而言,aws和stripes遇到了这个问题,因为它们使用curl进行连接。返回错误60,没有其他证书使用者名称与目标主机名称匹配。
一种解决方法是编辑/ etc / hosts文件。 硬编码端点的IP地址
XXX.XXX.X.X api.stripe.com
这将解决问题,但应重新访问,因为如果更改或删除了端点的IP地址,将来您的应用程序将失败。