2016-11-02 63 views
0

我已經整理了一個使用條紋支付系統的網站。 在做出測試支付了HTTPS,我得到的錯誤:PHP/CURL - 條紋TLS 1.0錯誤

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的條目。

任何意見將大規模讚賞。如果有任何其他信息可以提供幫助,請告訴我。

編輯:目前使用的磁條的PHP框架V4.1.1(最新)

回答

0

問題出在我本地的發行人證書上,結果證明我是在正確的軌道上。

必須在我的php.ini文件中爲curl_cainfo設置一個默認值並修復它。

1

證書你提到的是使用你的服務器響應進來的請求的SSL。這意味着,如果我作爲客戶訪問您的網站,我的瀏覽器(Chrome)會默認通過TLS 1.2與您的服務器通話,因爲它首先使用最安全的協議。您的服務器顯然可以通過TLS 1.2回答請求。

我們現在面臨的問題是,當您的服務器與Stripe服務器聯繫時,它默認協商TLS 1.0而不是TLS 1.2。由於Stripe將不贊成使用TLS < 1.2所做的請求,這意味着如果您不升級,明年您的請求將開始失敗。

我在這裏推薦的是與您的網絡主機討論這個問題,以便他們可以幫助您查看您的設置並確保您確實支持來自服務器的TLS 1.2請求到Stripe。此外,您可以按照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庫,以查看是否解決了您的問題。

+0

謝謝扎克,不幸的是,由於我的Stripe帳戶相當新,我已經實施了TLS 1.2限制,因此是我目前的困境。 我也更新了Stripe PHP框架的最新版本,以確保庫是最新的,但仍然收到相同的錯誤。 – Minka

+0

昨天我接觸了我的虛擬主機,他本質上是說服務器當前支持TLS 1.2,所以很可能我必須以某種方式啓用它,他們可以提供的所有功能都是禁用TLS 1.0和1。1,希望它能夠觸發TLS 1.2,但我不確定這會有所幫助,並且擔心它可能會影響我的其他一些託管站點。 – Minka