Naprawiliśmy to, komentując linię 377 wdownloader/lib/Mage/HTTP/Client/Curl.php
//$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1')
Może być ustawienie, które pozwala to przejść, ale nie zaszliśmy tak daleko.
Naprawiliśmy to, komentując linię 377 wdownloader/lib/Mage/HTTP/Client/Curl.php
//$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1')
Może być ustawienie, które pozwala to przejść, ale nie zaszliśmy tak daleko.
Odpowiedzi:
Są dwie rzeczy, które prawdopodobnie to spowodują.
Sprawdź, czy nie korzystasz z OpenSSL,
php -r "print_r(curl_version());" | grep ssl_version
Jeśli wyświetla coś innego niż OpenSSL - to twoja odpowiedź. Rozwiązaniem byłoby usunięcie / skomentowanie danego wiersza.
Wygląda na to, że Twoja biblioteka OpenSSL jest nieaktualna.
Na przykład. Typowy serwer sieciowy pokazuje,
openssl ciphers | tr ':' '\n'
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-AES256-SHA
SRP-DSS-AES-256-CBC-SHA
SRP-RSA-AES-256-CBC-SHA
SRP-AES-256-CBC-SHA
DHE-DSS-AES256-GCM-SHA384
DHE-RSA-AES256-GCM-SHA384
DHE-RSA-AES256-SHA256
DHE-DSS-AES256-SHA256
DHE-RSA-AES256-SHA
DHE-DSS-AES256-SHA
DHE-RSA-CAMELLIA256-SHA
DHE-DSS-CAMELLIA256-SHA
ECDH-RSA-AES256-GCM-SHA384
ECDH-ECDSA-AES256-GCM-SHA384
ECDH-RSA-AES256-SHA384
ECDH-ECDSA-AES256-SHA384
ECDH-RSA-AES256-SHA
ECDH-ECDSA-AES256-SHA
AES256-GCM-SHA384
AES256-SHA256
AES256-SHA
CAMELLIA256-SHA
PSK-AES256-CBC-SHA
ECDHE-RSA-DES-CBC3-SHA
ECDHE-ECDSA-DES-CBC3-SHA
SRP-DSS-3DES-EDE-CBC-SHA
SRP-RSA-3DES-EDE-CBC-SHA
SRP-3DES-EDE-CBC-SHA
EDH-RSA-DES-CBC3-SHA
EDH-DSS-DES-CBC3-SHA
ECDH-RSA-DES-CBC3-SHA
ECDH-ECDSA-DES-CBC3-SHA
DES-CBC3-SHA
PSK-3DES-EDE-CBC-SHA
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
ECDHE-ECDSA-AES128-SHA
SRP-DSS-AES-128-CBC-SHA
SRP-RSA-AES-128-CBC-SHA
SRP-AES-128-CBC-SHA
DHE-DSS-AES128-GCM-SHA256
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES128-SHA256
DHE-DSS-AES128-SHA256
DHE-RSA-AES128-SHA
DHE-DSS-AES128-SHA
DHE-RSA-SEED-SHA
DHE-DSS-SEED-SHA
DHE-RSA-CAMELLIA128-SHA
DHE-DSS-CAMELLIA128-SHA
ECDH-RSA-AES128-GCM-SHA256
ECDH-ECDSA-AES128-GCM-SHA256
ECDH-RSA-AES128-SHA256
ECDH-ECDSA-AES128-SHA256
ECDH-RSA-AES128-SHA
ECDH-ECDSA-AES128-SHA
AES128-GCM-SHA256
AES128-SHA256
AES128-SHA
SEED-SHA
CAMELLIA128-SHA
PSK-AES128-CBC-SHA
ECDHE-RSA-RC4-SHA
ECDHE-ECDSA-RC4-SHA
ECDH-RSA-RC4-SHA
ECDH-ECDSA-RC4-SHA
RC4-SHA
RC4-MD5
PSK-RC4-SHA
EDH-RSA-DES-CBC-SHA
EDH-DSS-DES-CBC-SHA
DES-CBC-SHA
EXP-EDH-RSA-DES-CBC-SHA
EXP-EDH-DSS-DES-CBC-SHA
EXP-DES-CBC-SHA
EXP-RC2-CBC-MD5
EXP-RC4-MD5
Co openssl version
pokazuje
Wygląda na to, że musisz zaktualizować bibliotekę SSL z innych powodów niż sam (tj. Wiele ujawnionych luk w starych bibliotekach).
Zapytałem Nexcess (odnosząc się do tego postu) i dostałem odpowiedź:
Znaleziona strona jest rzeczywiście poprawna. Widywaliśmy to bardzo często dzięki nowej aktualizacji. Stało się tak, że Magento zaktualizowało jakiś kod, aby był bardziej bezpieczny, ale przyjęli założenie, że curl zostanie skompilowany z bibliotekami SSL, które mogą sprawdzać za pomocą niektórych poleceń.
Niestety, serwery RedHat i CentOS (których używamy) mają cURL skompilowany z NSS, który zapewnia bezpieczeństwo bez niektórych dziur, z którymi OpenSSL miał problemy. Efektem ubocznym jest to, że kontrola, którą robi Magento, nie wysyła właściwego pytania i otrzymuje odpowiedź „nieznaną”.
Komentowanie linii, o której wspomniano w Solution to Magento Downloader 1.9.2, lista nieznanych szyfrów sprawiło, że do tej pory wszyscy się na to poradzili. Plotka głosi, że Magento wkrótce zajmie się tym nadzorem.
na naszym serwerze Centos 6, NSS jest aktualne w tym wydaniu, ale nie w ostatnim. inne rozwiązania linia komentująca, linia dodająca nie działają. jedynym rozwiązaniem, które działa, jest wymuszenie https na false poprzez dodanie linii
$https = false;
przed linią
$uriModified = $this->getModifiedUri($uri, $https);
i komentowanie
$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
Działa dla nas na Magento 1.9.2.4.
W wersji 1.9.2.3 użyj następującego linku 370 downloader / lib / Mage / HTTP / Client / Curl.php:
$uriModified = $this->getModifiedUri($uri, $https);
$this->_ch = curl_init();
$this->curlOption(CURLOPT_URL, $uriModified);
$this->curlOption(CURLOPT_SSL_VERIFYPEER, false);
//$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
$this->curlOption(CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
$this->getCurlMethodSettings($method, $params, $isAuthorizationRequired);
Sprawdź skomentowane fragmenty i nowy wiersz tuż pod nim
@ben jest jeszcze jeden przypadek podrzędny w 1. Komentowanie samej linii może nie działać, jeśli curl i nss nie są nieaktualne.
Jeśli nie jest budowany z openssl, curl może być budowany przy pomocy nss (CentOS / RHEL curl). Upewnij się, że biblioteki curl i nss są zaktualizowane.