PHP/CURL - 条纹 TLS 1.0 错误
PHP/CURL - Stripe TLS 1.0 Error
我已经建立了一个使用 Stripe 支付系统的网站。
通过 HTTPS 进行测试付款时,我收到错误消息:
Stripe no longer supports API requests made with TLS 1.0. Please initiate HTTPS connections with TLS 1.2 or later.
我已确保我的所有软件版本都是最新的:
PHP版本:7.0.7
cUrl 版本:7.47.1
SSL 版本:OpenSSL/1.0.2h
我还在 https://www.ssllabs.com/ssltest/analyze.html 上测试了我的网站本身,以确保 TLS 1.2 已启用并在服务器上正常运行。
我唯一能想到的是,如果我在 php.ini(CURL curl.cainfo 设置)中注册的证书包可能存在问题,但由于 Stripe 源具有 "ca-certificates.crt" 已经包含 我什至不确定是否需要在我的 php.ini 文件中为 curl.cainfo 设置一个条目。
如有任何建议,我们将不胜感激。如果我可以提供任何可能有帮助的其他信息,请告诉我。
编辑:当前使用 Stripe 的 PHP Framework v4.1.1(最新)
您提到的 SSL 证书被您的服务器用来响应传入的请求。这意味着如果我作为客户访问您的网站,我的浏览器 (Chrome) 将默认尝试通过 TLS 1.2 与您的服务器通信,因为它首先使用最安全的协议。您的服务器显然能够通过 TLS 1.2 响应请求。
我们现在遇到的问题是,当您的服务器联系 Stripe 的服务器时,它默认协商 TLS 1.0 而不是 TLS 1.2。由于 Stripe 将弃用 TLS < 1.2 的请求,这意味着如果您不升级,明年您的请求将开始失败。
我在这里建议的是与您的网站托管商讨论此事,以便他们可以帮助您检查您的设置并确保您确实支持从您的服务器到 Stripe 的 TLS 1.2 请求。此外,您可以按照 https://support.stripe.com/questions/how-do-i-upgrade-my-stripe-integration-from-tls-1-0-to-tls-1-2 中列出的步骤来确保您的代码库也支持 TLS 1.2。
这也可能是由于 Stripe 的 PHP 库版本过时所致。他们于 7 月 29 日星期五发布了 3.19.0 版,该版本纠正了一个影响某些设置的错误,这可能解释了为什么即使您的主机支持 TLS 1.2 也会出现此错误。您也可以尝试将您正在使用的 Stripe PHP 库更新到当前版本,看看是否能解决您的问题。
问题出在我的本地颁发者证书上,事实证明我是在正确的轨道上。
必须在我的 php.ini 文件中为 curl_cainfo 设置默认值并修复它。
我已经建立了一个使用 Stripe 支付系统的网站。 通过 HTTPS 进行测试付款时,我收到错误消息:
Stripe no longer supports API requests made with TLS 1.0. Please initiate HTTPS connections with TLS 1.2 or later.
我已确保我的所有软件版本都是最新的:
PHP版本:7.0.7
cUrl 版本:7.47.1
SSL 版本:OpenSSL/1.0.2h
我还在 https://www.ssllabs.com/ssltest/analyze.html 上测试了我的网站本身,以确保 TLS 1.2 已启用并在服务器上正常运行。
我唯一能想到的是,如果我在 php.ini(CURL curl.cainfo 设置)中注册的证书包可能存在问题,但由于 Stripe 源具有 "ca-certificates.crt" 已经包含 我什至不确定是否需要在我的 php.ini 文件中为 curl.cainfo 设置一个条目。
如有任何建议,我们将不胜感激。如果我可以提供任何可能有帮助的其他信息,请告诉我。
编辑:当前使用 Stripe 的 PHP Framework v4.1.1(最新)
您提到的 SSL 证书被您的服务器用来响应传入的请求。这意味着如果我作为客户访问您的网站,我的浏览器 (Chrome) 将默认尝试通过 TLS 1.2 与您的服务器通信,因为它首先使用最安全的协议。您的服务器显然能够通过 TLS 1.2 响应请求。
我们现在遇到的问题是,当您的服务器联系 Stripe 的服务器时,它默认协商 TLS 1.0 而不是 TLS 1.2。由于 Stripe 将弃用 TLS < 1.2 的请求,这意味着如果您不升级,明年您的请求将开始失败。
我在这里建议的是与您的网站托管商讨论此事,以便他们可以帮助您检查您的设置并确保您确实支持从您的服务器到 Stripe 的 TLS 1.2 请求。此外,您可以按照 https://support.stripe.com/questions/how-do-i-upgrade-my-stripe-integration-from-tls-1-0-to-tls-1-2 中列出的步骤来确保您的代码库也支持 TLS 1.2。
这也可能是由于 Stripe 的 PHP 库版本过时所致。他们于 7 月 29 日星期五发布了 3.19.0 版,该版本纠正了一个影响某些设置的错误,这可能解释了为什么即使您的主机支持 TLS 1.2 也会出现此错误。您也可以尝试将您正在使用的 Stripe PHP 库更新到当前版本,看看是否能解决您的问题。
问题出在我的本地颁发者证书上,事实证明我是在正确的轨道上。
必须在我的 php.ini 文件中为 curl_cainfo 设置默认值并修复它。