我们收到了来自 Braintree 的电子邮件,他们已经升级了证书。 细节 : 我们想确保您知道,从 2017 年 1 月 31 日开始,Braintree 将停止接受使用 TLS 1.0 加密的连接。根据 PCI DSS 3.1 要求,所有请求都必须使用 TLS 1.2+。了解如何确保您使用的是 TLS 1.2。
自 12 月 13 日起,Sandbox 不再支持早于 1.2 的 TLS 版本。我们预计会对 Java 环境(包括 Android)产生重大影响。其他环境,包括 .NET、PHP、Ruby、Python 和 Node.js,也可能受到影响。有关完整的详细信息。
我们的应用程序在测试环境中运行良好,这意味着所有沙盒 url 都运行良好,但它在 locahost 上不起作用。
本地主机上的详细异常:
com.acti.braintreegateway.exceptions.UnexpectedException:无法验证 URL 的 SSL 证书:https://api.sandbox.braintreegateway.com:443/merchants/qt7d7qk52zpssmqb/customers com.acti.braintreegateway.exceptions.UnexpectedException:无法验证 URL 的 SSL 证书:https://api.sandbox.braintreegateway.com:443/merchants/qt7d7qk52zpssmqb/customers
我们使用 Google appengine java 和 gradle 来构建应用。
最佳答案
我们遇到了同样的问题(问题在这里:Force TLS 1.2 on appengine dev server SDK),我们通过在 Java 8 SDK 上运行本地版本的应用程序解决了这个问题。
Java 8 默认使用 TLSv1.2。 JVM 参数 hack 对我们都不起作用,我们希望使用 appengineDownloadSdk 动态下载 appengine SDK,这样我们就不必在 CI 服务器上维护版本,因此 dev_server.sh hack 也不起作用。
最后,使用 Java 8 SDK 工作得很好,尽管在生产环境中运行应用程序的 JRE 之外的 JRE 上开发和测试感觉不对。
关于java - com.acti.braintreegateway.exceptions.UnexpectedException : Could not verify SSL certificate for URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41616158/