亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

osx 10.10 CURL POST到HTTPS url給出SSLRead()錯誤

osx 10.10 CURL POST到HTTPS url給出SSLRead()錯誤

C++
夢里花落0921 2019-12-12 14:10:04
我最近才升級到OSX 10.10 Yosemite,由于升級,我無法再將Curl POST轉換為SSL url。我首先使用了wordpress的wp_remote_request調用,還嘗試在php中使用curl。兩者(按預期)給出相同的錯誤消息:錯誤號:56錯誤字符串:SSLRead()返回錯誤-9806注意:當我將POST卷曲到HTTP時,它可以正常工作。我認為這是PHP.ini或apache中的設置(升級后丟失了原始的HTTPD.conf文件...)。誰能幫我嗎?
查看完整描述

3 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

我已經看到當使用在優勝美地下使用Apple的Secure Transport的cURL版本編譯php 且URL請求的目標不支持SSLv3(由于POODLE漏洞而被禁用)時,會發生此錯誤。該命令的輸出是什么?


$ php -i | grep "SSL Version"

我懷疑您會看到以下內容:


SSL Version => SecureTransport

您可以通過安裝php版本來解決此問題,該版本使用cURL版本使用OpenSSL而不是SecureTransport。使用自制程序最容易做到這一點。因此,如果尚未安裝,請先安裝。如果已安裝自制軟件,但brew update自升級到優勝美地以來您還沒有運行過,請首先執行此操作。還要確保您已安裝XCode> = 6.1和最新的XCode命令行工具。brew doctor會告訴您是否已正確執行操作。


在下面添加您需要的Homebrew水龍頭,以安裝釀造的php。如果這些存儲庫已被竊聽,請跳過此步驟。如果不確定這些存儲庫是否已被竊聽,請運行以下命令。最壞的情況下,您將無害Warning: Already tapped!


$ brew tap homebrew/dupes

$ brew tap homebrew/versions

$ brew tap homebrew/php

然后使用openssl安裝curl:


$ brew install --with-openssl curl

然后使用剛安裝并釀造的openssl的curl安裝php:


$ brew install --with-homebrew-curl --with-httpd24 php55

如果使用apache,請確保將其添加LoadModule php5_module    /usr/local/opt/php55/libexec/apache2/libphp5.so到您的計算機/etc/apache2/httpd.conf并重新啟動apache。


如果不使用apache 2.4,則可以--with-httpd24從上述命令中刪除。


如果使用nginx,請遵循以下說明開始fpm:


要在啟動時啟動php-fpm:


mkdir -p ~/Library/LaunchAgents

cp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist

安裝您將需要的任何php擴展,例如。mcrypt。


$ brew install php55-mcrypt

完成后,再次運行此命令:


$ php -i | grep "SSL Version"

而且您應該看到:


SSL Version => OpenSSL/1.0.2h

現在,重新測試您的應用程序,該應用程序將SSLRead() return error -9806消失。



查看完整回答
反對 回復 2019-12-13
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

我也有類似的SSLRead() return error -9806錯誤問題,也有SSL Version => SecureTransport。


但就我而言,問題是我設置了curl CURLOPT_HTTP_VERSION選項:


$curl = curl_init();    

curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);

如果刪除該選項,則cURL將決定默認使用哪個版本。有關更多信息,請參見curl_setopt文檔。


這對我有用,并且我不需要使用cURL或PHP進行任何更改。但這是error -9806出現的許多情況之一的解決方案。



查看完整回答
反對 回復 2019-12-13
  • 3 回答
  • 0 關注
  • 384 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號