使用 Composer 安裝套件遇到 SSL 憑證問題導致無法安裝。過渡解決方法是跳過 SSL 憑證檢查。
因為是過渡解決方法,請自行評估風險是否採用。
Copyright © 2011 Nils Adermann, Jordi Boggiano |
問題狀況
「Composer 是 PHP 的軟體套件管理系統,它提供用於管理 PHP 軟體和依賴庫關係的標準格式。」(來源:維基百科) 安裝套件遇到 SSL 憑證問題 SSL certificate problem: certificate has expired ,導致無法安裝新套件。
問題解決方法
法1 修改設定檔
到專案根目錄,修改設定檔 (composer.json) 跳過 SSL 憑證檢查
原檔案內容
{
"require": {
"simplon/mysql": "^2.2",
"phpoffice/phpword": "^0.18.2"
}
}
修改後檔案內容
{"config": {"disable-tls": true},"require": {"simplon/mysql": "^2.2","phpoffice/phpword": "^0.18.2"}}
到終端機重新輸入安裝新套件的命令
composer require PACKAGE_NAME
或 php /path/to/composer.phar require PACKAGE_NAME
順利安裝新套件
法2 直接在命令修改安全設定
到終端機重新輸入命令
composer config -g -- disable-tls true
composer require PACKAGE_NAME
安裝時會看到終端機提示「You are now running Composer with SSL/TLS protection disabled.」 可順利安裝新套件。
如果要恢復原本的安全設定,到終端機重新輸入命令
composer config -g -- disable-tls false
問題原因
Composer install or update failed because of SSL certificate error - KoolReport 文章提到許多舊系統使用的 DST Root CA X3 SSL 憑證在 2021/9/30 過期。連線的伺服器端與客戶端都要移除過期的憑證,否則會出現錯誤。無效的嘗試
1. 先使用 composer 診斷功能
composer diagnose
或 php /path/to/composer.phar diagnose
但是沒有顯示任何錯誤
2. 使用瀏覽器開啟訊息提到有問題的網址,發現瀏覽器並未顯示任何憑證問題
3. 其他無效的嘗試
- 更新 MAMP PHP 版本
- 更新 composer 版本
參考資料
- Why i get SSL error? · Issue #973 · composer/packagist
- Composer Installation Throwing SSL certificate problem · Issue #9459 · composer/composer
- ssl - composer to disable https completely - Stack Overflow
- php - Composer Curl error 60: SSL certificate problem: unable to get local issuer certificate - Stack Overflow
- Composer install or update failed because of SSL certificate error - KoolReport
- OpenSSL 1.0.2 與 Let’s Encrypt 在這個月月底的相容性問題 – Gea-Suan Lin's BLOG
- dst root ca x3 certificate has expired an… - Apple Community
留言
張貼留言