2017-06-12 60 views
0

我使用Gallery 3進行圖片上傳。 當我使用https://domain時,上傳工作正常。但是,因爲我使用https://domain Gallery3無法建立連接。fsockopen無法連接SSL(HTTPS)網址。同時使用Gallery 3進行圖片上傳

Errors : **fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in fileName** 

**fsockopen(): Failed to enable crypto in finleName** 

**fsockopen(): unable to connect to ssl://domain:443 (Unknown error) in /** 

下面是意見:

  1. 的URL連接成爲SSL://域具有端口443
  2. 的fsockopen未能做出連接和拋出錯誤。

怎麼回事?我的服務器上有一個有效的https證書,並且安裝了openssl。

還有其他要求嗎?

回答

0

PHP 5.6+ updated the default ciphers基於Mozilla cipher recommendations。關於RFC for improving tls defaults中使用什麼密碼的更多細節。總體而言,這一變化取消了對匿名Diffie-Hellman和RC4的支持,很可能您的服務器仍然使用RC4。

有兩種選擇:

  1. 更新使用基於服務器上的Mozilla的萃豐時代建議
  2. 更新gallery3代碼中使用RC4,因爲它沒有被自2013年起,你可以更新密碼也許這樣做選項,而不過多顧慮

對於選項2,它看起來像呼叫在gallery3 /模塊/庫/助理/ MY_remote.php進行在線七十四分之七十三:

$handle = fsockopen(
    $url_components['fsockhost'], $url_components['port'], $errno, $errstr, 5); 

您可以將其更改爲使用stream_socket_client是兼容fsockopen

$context = stream_context_create(['ssl' => [ 
    'ciphers' => 'RC4-MD5' 
]]); 
$timeout = ini_get('default_socket_timeout'); 

$handle = stream_socket_client('ssl://' . $url_components['fsockhost'] . ':' . $url_components['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $context); 
相關問題