Magento 無法更新與安裝 extension,這個問題會發生的情形,主要原因是,
Magento 在版本 1.9.2.0 之後,預設要求 HTTPS 連線。
這個問題多半會發生在開發環境上,本機(localhost)或是測試主機,因為通常這些環境下不會設定SSL。
所以如果在未設定SSL的環境下,想要更新或安裝extension時,就會遇到此訊息。
Unknown cipher in list: TLSv1
Magento 无法更新与安装 extension – SSL(https) Magento 1.9.2 Unknown cipher in list: TLSv1
所以我們現在就是要來修改設定檔了,在一般開發的環境下關閉SSL,或是沒有設定SSL的伺服器也關閉這個設定(只是不建議這麼做,不論如何增設SSL增加安全性都是好的)。
在Magento資料夾裡,依此路徑找到這個檔案:downloader/lib/Mage/HTTP/Client/Curl.php
在約第377行:
...
$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
...
註解掉:
...
// $this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
...
然後再回到 Magento connect,安裝 extension 就可以進行了。
還是額外提醒一下,假如您的正式網站沒有SSL,你可以在安裝extension時,先關閉(註解)這個設定,安裝後再恢復,來維持您的 Magento 網站安全性
其他:
1. 方法一
try chagne
$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
to
$this->curlOption(CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
2. 方法二
In file downloader/lib/Mage/HTTP/Client/Curl.php
I changed the code
$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
to
if(isset($var)){$this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');}
and problem will be solved for now.