"https://getcomposer.org/versions" 文件无法下载: SSL 操作失败,错误代码为 1。 OpenSSL 错误消息:错误:1416F086。

13

我正在尝试在Windows上安装composer,但是我遇到了以下错误:

无法下载“https://getcomposer.org/versions”文件: SSL操作失败,返回代码1。OpenSSL错误信息:错误: 1416F086:SSL例程:tls_process_server_certificate:证书 验证失败。启用加密失败,打开流失败。

发生了什么情况,如何修复?


2
如果您在服务器上的Web浏览器中尝试访问该URL,会发生什么? - ceejayoz
3
这个与编程有关的内容似乎和这个问题有关,但我不认为它是一个重复的问题。那里的答案建议修改file_get_contents()调用,但是OP不应该被要求修改composer安装脚本来完成此操作。 - HPierce
我在Linode的LAMP堆栈Docker容器上遇到了相同的错误。不过这个容器相当老,使用的是Ubuntu 14.04.1 LTS。 - ConorSheehan1
9个回答

4
我已经解决了,你遇到的问题似乎与缺少证书有关。
你只需要将你的证书添加到以下文件的末尾: C:\xampp\apache\bin\curl-ca-bundle.crt
以下是如何添加证书的示例:
-----BEGIN CERTIFICATE----- MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjE... (你的证书) -----END CERTIFICATE-----

2

我曾遇到同样的错误,以下是我解决问题的方法: 我按照https://getcomposer.org/download/命令行安装段落中的说明进行操作。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

我将行 php composer-setup.php 替换为 php composer-setup.php --disable-tls

我通过检查 composer-setup.php 中的代码找到了这个选项。我应该运行 php composer-setup.php --help 来更快地找到相同的答案,而无需阅读代码。


1
如果您在私有网络(受限网络)中,例如组织内部,请更新“curl-ca-bundle.crt”中的证书,在“C:\xampp\apache\bin\curl-ca-bundle.crt”文件底部复制粘贴您的组织证书代码。请保留HTML标签。

0

作为一个快速解决方案,我可以通过其 Docker 镜像运行 composer

docker run --rm --interactive --tty \
  --volume $PWD:/app \
  composer/composer install

我在我的本地Ubuntu机器上被这个问题困扰。毫无明显原因,composer会超时。


0

我曾经遇到过同样的问题。你需要找到以下证书并手动安装到“当前用户/本地计算机”的受信任根目录中。

C:\xampp\apache\bin\curl-ca-bundle.crt

0

我曾经遇到过同样的问题,原因是我的电脑上运行了VPN应用程序,退出该应用程序后问题得到解决。


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - Josua Marcel C

0
我不得不退出VPN才能使其正常工作。为其他可能需要另一种选择的人发布此内容,如果其他方法似乎无效。

0
我遇到了同样的错误,在工作了一个小时后,因为我的Linux服务器没有SSL,并且是公共IP。 我在代码中禁用了使用HTTPS的请求。
请使用此模式进行下载。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php composer.phar install

我编辑了文件composer-setup.php,路径为/usr/src/a2billing/composer-setup.php。在第755行删除https。
$uriScheme = $this->disableTls ? 'http' : 'http';

所有都完成了,服务器只能在HTTP端口80上进行请求。

-3

我已经解决了,你遇到的问题似乎与缺少证书有关。 但如果没有证书,请尝试将composer目录更改到其他地方,而不是桌面,然后再次尝试安装。 这对我真的很有效!!


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - Lajos Arpad
无法以这种方式工作。 - Brainwash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接