우리는 377 행 을 주석 처리하여 이것을 고쳤 습니다.downloader/lib/Mage/HTTP/Client/Curl.php
//$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1')
이것을 통과시키는 설정이있을 수 있지만 우리는 그렇게 멀지 않았습니다.
우리는 377 행 을 주석 처리하여 이것을 고쳤 습니다.downloader/lib/Mage/HTTP/Client/Curl.php
//$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1')
이것을 통과시키는 설정이있을 수 있지만 우리는 그렇게 멀지 않았습니다.
답변:
이 문제를 일으킬 수있는 두 가지가 있습니다.
OpenSSL을 사용하지 않는지 확인하십시오.
php -r "print_r(curl_version());" | grep ssl_version
OpenSSL 이외의 것이 표시되면 그게 답입니다. 해결책은 문제의 줄을 제거 / 코멘트하는 것입니다.
OpenSSL 라이브러리가 오래된 것 같습니다.
예 : 일반적인 웹 서버는
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
무엇을 openssl version
보여줍니까?
SSL 라이브러리를 이것보다 더 많은 이유로 업그레이드해야 할 것 같습니다 (예 : 이전 라이브러리의 여러 공개 된 취약점).
Nexcess (이 게시물 참조)에게 물었고이 답변을 얻었습니다.
찾은 페이지가 실제로 정확합니다. 우리는 새로운 업데이트로 이것을 많이 보았습니다. Magento는 좀 더 안전한 코드를 업데이트했지만 curl이 SSL 라이브러리에 대해 컴파일되어 특정 명령으로 확인할 수 있다고 가정했습니다.
불행히도, RedHat 및 CentOS 서버 (우리가 사용하는)에는 OpenSSL에 문제가없는 보안을 제공하는 NSS에 대해 컴파일 된 cURL이 있습니다. 이것의 부작용은 마젠 토의 점검이 올바른 질문을 보내지 않고 '알 수없는'응답을 얻는다는 것입니다.
Magento Downloader 1.9.2의 Solution to Magento Downloader 에서 언급 한 내용을 주석 처리하면 지금까지 모든 사람들이 트릭을 수행했습니다. 소문 공장은 Magento가 곧이 감독 문제를 해결할 것입니다.
1.9.2.3에서 downloader / lib / Mage / HTTP / Client / Curl.php 행 370 ish에서 다음을 사용하십시오.
$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);
주석 처리 된 비트 및 그 바로 아래에있는 새 줄을 확인하십시오.
@ben 1에는 하나의 하위 사례가 하나 더 있습니다. curl 및 nss가 최신이 아닌 경우에만 라인 주석 처리가 작동하지 않을 수 있습니다.
openssl로 빌드하지 않은 경우 curl은 nss (CentOS / RHEL curl)로 빌드 될 수 있습니다. curl 및 nss 라이브러리가 최신인지 확인하십시오.