yuk*_*lia 31 php xampp openssl composer-php php-5.6
在执行composer install/update时,我从openssl得到以下错误:
无法下载" https://packagist.org/packages.json "文件:SSL操作失败,代码为1. OpenSSL错误消息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败无法启用加密失败打开stream:操作失败 https://packagist.org无法完全加载,包信息是从本地缓存加载的,可能已过期
我在用:
作曲家诊断显示:
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity: FAIL
[Composer\Downloader\TransportException] The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Checking disk free space: OK
Checking composer version:
Run Code Online (Sandbox Code Playgroud)
[Composer\Downloader\TransportException] 无法下载
" https://getcomposer.org/version "文件:SSL操作失败,代码为1. OpenSSL错误消息:
错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
失败enable crypto
无法打开流:操作失败
php -r'var_dump(openssl_get_cert_locations());' 说明:
array(8) {
["default_cert_file"]=>
string(33) "/opt/lampp/share/openssl/cert.pem"
["default_cert_file_env"]=>
string(13) "SSL_CERT_FILE"
["default_cert_dir"]=>
string(30) "/opt/lampp/share/openssl/certs"
["default_cert_dir_env"]=>
string(12) "SSL_CERT_DIR"
["default_private_dir"]=>
string(32) "/opt/lampp/share/openssl/private"
["default_default_cert_area"]=>
string(24) "/opt/lampp/share/openssl"
["ini_cafile"]=>
string(0) ""
["ini_capath"]=>
string(0) ""
}
Run Code Online (Sandbox Code Playgroud)
对于PHP 5.5.19一切都很好.
Man*_*hoa 27
我找到了解决方案
我正在运行:
FreeBSD 10.1
Apache2.4
PHP 5.6.3
要查找CA文件,我运行了此命令
> locate cacert.pem
结果是:
/usr/local/lib/perl5/site_perl/5.16/Mozilla/CA/cacert.pem
然后打开php.ini文件并
更改:
; openssl.cafile =
对此:
openssl.cafile =的/ usr /本地/ LIB /的perl5/SITE_PERL/5.16/Mozilla浏览器/ CA/cacert.pem
注意:该指令仅适用于php 5.6.x.
然后重启Apache
kip*_*zes 11
我通过将SSL证书添加到XAMPP证书文件夹解决了SSL错误的问题.
// navigate to a directory to save the certificate
cd /Downloads
// download a certificate
wget http://curl.haxx.se/ca/cacert.pem
// rename and move the file to the Xampp certificates folder
mv cacert.pem /Applications/XAMPP/xamppfiles/share/openssl/cert.pem
Run Code Online (Sandbox Code Playgroud)
别忘了重启你的apache!
我正在使用Mac OS Sierra,当我尝试使用命令更新作曲家时,/usr/local/bin/composer self-update
我一直收到错误:
[Composer\Downloader\TransportException]
The "https://getcomposer.org/version" file could not be downloaded: SSL operation failed with co
de 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Run Code Online (Sandbox Code Playgroud)
我按照以下步骤修复了它:
1)使用以下命令创建本地数据库:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
Run Code Online (Sandbox Code Playgroud)
2)找到证书文件:
locate cacert.pem
Run Code Online (Sandbox Code Playgroud)
3)检查php.ini文件的位置:
php --ini
Run Code Online (Sandbox Code Playgroud)
4)如果文件的"已加载配置文件" php.ini
显示为(none)
,则将文件复制/etc/php.ini.default
到/etc/php.ini
:
sudo cp /etc/php.ini.default /etc/php.ini
Run Code Online (Sandbox Code Playgroud)
5)打开php.ini
文件并;openssl.cafile=
通过取消注释并将链接附加到cert文件位置来编辑该 行:
openssl.cafile=/Users/me/.composer/cacert.pem
Run Code Online (Sandbox Code Playgroud)
而已.现在,当您运行编辑器更新时,它将正常工作.
即使添加了下载的有效最新证书后,我在 Windows 上也遇到了同样的问题。我在代理后面运行作曲家,所以我必须添加环境变量 http_proxy 和 https_proxy。
我的环境: PHP 5.6.33 Windows 7 64 位 Composer 版本 1.6.3 2018-01-31 16:28:17
我下载了最新的证书CA Bundle并更新了 php.ini 中的以下路径仍然不起作用。
curl.cainfo = C:\Certificates\ca-bundle.crt
openssl.cafile= C:\Certificates\ca-bundle.crt
openssl.capath=C:\Certificates
Run Code Online (Sandbox Code Playgroud)
然后做了以下步骤
1) 打开 Chrome 浏览器并导航https://packagist.org/
2) 单击安全锁小图标
3) 单击证书有效
4)打开证书路径选项卡,您将看到以下路径级别
5)需要导出图中标记的1和2的证书
6) 要导出证书,请单击“查看证书”,转到“详细信息”选项卡,然后单击“复制到文件”
7)选择BASE 64编码
8) 单击“下一步”并将该文件保存到某个位置,对第 4 步中所示的第 (2) 号执行此操作
9)打开.cer文件并将内容复制到您用于在php.ini中配置的.crt文件的末尾
然后尝试运行 comport install - 它对我有用
如果您在通过代理访问站点时看到 Composer 抛出 ssl 错误,则过程应该是相同的。
将 openssl.cafile 添加到 php.ini 也对我有用。我没有寻找cert文件,而是直接下载了它:
curl http://curl.haxx.se/ca/cacert.pem > cacert.pem
然后只是将 openssl.cafile 设置指向它。
小智 5
1.
php -r "print_r(openssl_get_cert_locations());"
Run Code Online (Sandbox Code Playgroud)
array(8) {
["default_cert_file"]=>
string(31) "/usr/local/etc/openssl/cert.pem"
...
}
Run Code Online (Sandbox Code Playgroud)
2.vim php.ini
[openssl]
openssl.cafile=/usr/local/etc/openssl/cert.pem
Run Code Online (Sandbox Code Playgroud)