เราคงนี้โดยการแสดงความคิดเห็นออกเส้น 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 (ที่เราใช้) มี cURL ที่คอมไพล์กับ NSS ซึ่งให้การรักษาความปลอดภัยโดยไม่มีช่องโหว่ที่ OpenSSL มีปัญหา ผลข้างเคียงของสิ่งนี้คือการที่วีโอไอพีตรวจสอบทำไม่ได้ส่งคำถามที่ถูกต้องและได้รับการตอบสนอง 'ไม่ทราบ'
การแสดงความคิดเห็นในบรรทัดที่กล่าวถึงใน Solution to Magento Downloader 1.9.2 รายการตัวเลขที่ไม่รู้จัก ได้ทำเคล็ดลับสำหรับทุกคนจนถึงขณะนี้ โรงงานผลิตข่าวลือว่าวีโอไอพีจะจัดการเรื่องนี้ในไม่ช้า
บนเซิร์ฟเวอร์ Centos 6 ของเรา NSS เป็นรุ่นล่าสุดสำหรับรุ่นนี้ แต่ไม่ใช่รุ่นล่าสุด โซลูชันอื่น ๆ ที่แสดงความคิดเห็นบรรทัดการเพิ่มบรรทัดไม่ทำงาน ทางออกเดียวที่ใช้ได้คือบังคับให้ https เป็นเท็จโดยการเพิ่มบรรทัด
$https = false;
ก่อนบรรทัด
$uriModified = $this->getModifiedUri($uri, $https);
และแสดงความคิดเห็น
$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
ทำงานได้ดีกับเราใน 1.9.2.4 Magento
บน 1.9.2.3 ใช้ follwing บน downloader / lib / Mage / HTTP / ไคลเอนต์ / 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 ขดอาจถูกสร้างขึ้นด้วย nss (CentOS / RHEL curl) ตรวจสอบให้แน่ใจว่าไลบรารี curl และ nss อัพโตเดต