首頁  >  文章  >  後端開發  >  在 OSX 10.10 上向 HTTPS URL 發出 Curl POST 請求時如何解決「SSLRead() 回傳錯誤 -9806」?

在 OSX 10.10 上向 HTTPS URL 發出 Curl POST 請求時如何解決「SSLRead() 回傳錯誤 -9806」?

Susan Sarandon
Susan Sarandon原創
2024-10-31 08:28:02352瀏覽

How to Solve

OSX 10.10 Curl POST 到HTTPS URL:解決SSLRead() 錯誤

升級到OSX 10.10 Yosemite

升級到OSX 10.10 Yosemite 後,用戶在以下情況下遇到到錯誤對SSL URL 執行Curl POST 請求。錯誤訊息「Error Number:56, Error String:SSLRead() return error -9806」表示SSL連線有問題。

調查,發現此錯誤與版本有關cURL 在 Yosemite 下用 PHP 編譯。預設情況下,PHP 使用 cURL 的 SecureTransport,由於 POODLE 漏洞而停用 SSLv3 的網站可能會遇到問題。

    要解決此問題,您需要安裝使用 OpenSSL 而不是 SecureTransport 的 PHP 版本對於捲曲。這可以透過 Homebrew(macOS 的套件管理器)來完成。安裝Homebrew 後,請按照以下步驟操作:
  1. $ brew tap homebrew/dupes
    $ brew tap homebrew/versions
    $ brew tap homebrew/php
    點擊Homebrew 水龍頭:
  2. $ brew install --with-openssl curl
    使用openssl 安裝curl:
  3. $ brew install --with-homebrew-curl --with-httpd24 php55
    使用新安裝的curl 和openssl 安裝PHP:
  4. 為Apache 或Nginx 設定PHP。
安裝您安裝的任何PHP 擴充功能require.

$ php -i | grep "SSL Version"
完成這些步驟後,執行以下命令:

SSL Version => OpenSSL/1.0.2h
您現在應該看到:

使用OpenSSL對於cURL,當您嘗試向HTTPS URL 發起Curl POST 請求時,不應再出現SSLRead() 錯誤。

以上是在 OSX 10.10 上向 HTTPS URL 發出 Curl POST 請求時如何解決「SSLRead() 回傳錯誤 -9806」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn