这个问题似乎很常见,我已经读了很多与之相关的SO帖子,但都不起作用,我快疯了。奇怪的是,几周前它运行得很好,几个月以来我没有安装任何新东西。。。
设置:
- PHP 7.1.9
- WAMPSERVER 3.1.0
- APACHE 2.4.27
- 作曲家1.6.5(最新版本(
- 我不是在代理后面&没有防火墙
- Windows 10
什么有效:
- 作曲家自我更新
什么不起作用:
-
安装软件包
-
我够不着https://packagist.org/带有firefox 61.0.1(64位((不安全连接:MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT(
我用composer得到的错误要求:
[ComposerDownloaderTransportException]
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
php-r"var_dump(openssl_get_cert_location(((;"返回此:
array(8) {
["default_cert_file"]=>
string(25) "c:/usr/local/ssl/cert.pem"
["default_cert_file_env"]=>
string(13) "SSL_CERT_FILE"
["default_cert_dir"]=>
string(22) "c:/usr/local/ssl/certs"
["default_cert_dir_env"]=>
string(12) "SSL_CERT_DIR"
["default_private_dir"]=>
string(24) "c:/usr/local/ssl/private"
["default_default_cert_area"]=>
string(16) "c:/usr/local/ssl"
["ini_cafile"]=>
string(51) "C:/wamp64/bin/php/php7.1.9/extras/ssl/ca-bundle.crt"
["ini_capath"]=>
string(0) ""
}
我已经下载了ca-bundle.crt并将其添加到我的php.ini文件中:
curl.cainfo=C:/wamp64/bin/php/php7.1.9/extras/ssl/ca-bundle.crt
openssl.cafile=C:/wamp64/bin/php/php7.1.9/extras/ssl/ca-bundle.crt
Composer diagnose返回此消息:
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: WARNING
[ComposerDownloaderTransportException] The "http://packagist.org/packages.json" file could not be downloaded (HTTP/1.1 404 Not Found)
Checking https connectivity to packagist: WARNING
[ComposerDownloaderTransportException] 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 github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys: OK
Checking composer version: OK
Composer version: 1.6.5
PHP version: 7.1.9
PHP binary path: C:wamp64binphpphp7.1.9php.exe
composer show-p-vvv|grep ssl返回以下内容:
Reading ./composer.json
Loading config file ./composer.json
Checked CA file C:wamp64binphpphp7.1.9extrassslca-bundle.crt: valid
Executing command (C:wamp64wwwprojectName): git branch --no-color --no-abbrev -v
Failed to initialize global composer: Composer could not find the config file: C:/Users/********/AppData/Roaming/Composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Reading C:wamp64wwwprojectName/vendor/composer/installed.json
Loading plugin PackageVersionsInstaller
Loading plugin SymfonyFlexFlex
Composer >=1.7 not found, downloads will happen in sequence
Running 1.6.5 (2018-05-04 11:44:59) with PHP 7.1.9 on Windows NT / 10.0
ext-openssl 7.1.9 The openssl PHP extension
lib-openssl 1.0.2.11 OpenSSL 1.0.2k 26 Jan 2017
php--ini:
Configuration File (php.ini) Path: C:WINDOWS
Loaded Configuration File: C:wamp64binphpphp7.1.9php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
EDIT 1
-尝试清空缓存
-其他web浏览器(chrome,edge(不起作用
–同一网络上的另一台计算机-->起作用
EDIT 2
-创建了一个新的windows用户,无法使用
编辑3
-我可以访问https://repo.packagist.org/正如@kallosz
-Curl给我的建议:
curl -vvv https://packagist.org/
* Trying 144.217.203.53...
* TCP_NODELAY set
* Connected to packagist.org (144.217.203.53) port 443 (#0)
* schannel: SSL/TLS connection with packagist.org port 443 (step 1/3)
* schannel: checking server certificate revocation
* schannel: sending initial handshake data: sending 178 bytes...
* schannel: sent initial handshake data: sent 178 bytes
* schannel: SSL/TLS connection with packagist.org port 443 (step 2/3)
* schannel: failed to receive handshake, need more data
* schannel: SSL/TLS connection with packagist.org port 443 (step 2/3)
* schannel: encrypted data got 1462
* schannel: encrypted data buffer: offset 1462 length 4096
* schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - La chaîne de certificats a été fournie par une autorité qui n'est pas approuvée.
* Closing connection 0
* schannel: shutting down SSL/TLS connection with packagist.org port 443
* schannel: clear security context handle
curl: (77) schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325)
尝试
composer config disable-tls true
composer config secure-http false
您也可以将composer配置repositories.packagist.org.url
更改为https?://repo.packagist.org
。
我不得不更改全局配置文件
C:\Users\USERNAME\AppData\Roaming\Composer\config.json
到此:
{
"config": {
"disable-tls": true,
"secure-http": false
},
"repositories": [
{
"type": "composer",
"url": "http://repo.packagist.org"
}
]
}
我不得不在Ubuntu上重新安装CURL开发库,即将NSS风格替换为OpenSSL风格:
sudo apt install -y libcurl4-openssl-dev
使用phpbrew重建PHP导致使用适当的库调用启用了libcurl;反过来,它正确地识别了CA证书捆绑包,并将其指向正确的位置。