首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Composer -- >错误:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate验证失败

Composer -- >错误:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate验证失败
EN

Stack Overflow用户
提问于 2015-01-31 14:52:11
回答 3查看 11.3K关注 0票数 5

我可以连接到SSL站点,通过HTTPS通过命令行安装composer。已检查OPENSSL版本SSL Version => OpenSSL/1.0.1j。那么问题出在哪里呢?有什么想法?

以下是原始输出。

代码语言:javascript
复制
[kunaaljain@localhost php]$ /opt/lampp/bin/php-5.6.3 composer.phar diagChecking composer.json: FAIL
the property name is required
the property description is required
No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license.
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 open stream: Cannot connect to HTTPS server through proxy
Checking HTTP proxy: 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 open stream: Cannot connect to HTTPS server through proxy
EN

回答 3

Stack Overflow用户

发布于 2015-03-16 00:00:55

这是一个php > 5.6的OpenSSL问题。Rob Allen在这里用自制软件解决了这个问题:http://akrabat.com/ssl-certificate-verification-on-php-5-6/

github上还有一个针对Composer的官方问题:https://github.com/composer/composer/issues/2798#issuecomment-68200214

编辑链接证书文件的php.ini应该可以解决这个问题:

代码语言:javascript
复制
curl.cainfo=/full/path/to/ssl/certs/ca-bundle.crt
openssl.cafile=/full/path/to/ssl/certs/ca-bundle.crt

这个问题告诉你如何找到正确的路径:Composer update fails while updating from packagist

票数 2
EN

Stack Overflow用户

发布于 2015-12-10 10:04:56

在我更新到OSX El Capitan之后,我在我的Mac上也遇到了同样的情况,同时在我的开发环境中更新了其他东西。

我花了半天的时间调查,得出的结论是openssl中有过时的证书。解决方案是通过bash脚本从苹果的密钥链中提取证书:

代码语言:javascript
复制
    cert_file="$( openssl version -d | awk -F'"' '{print $2}' )/cert.pem"
    mkdir -p "${cert_file%/*}"
    security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file"
    security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"

如果之前没有手动处理过openssl的配置,那么这在大多数情况下都会有帮助。

票数 2
EN

Stack Overflow用户

发布于 2018-10-28 03:35:51

当我试图在本地的流浪环境中运行composer时,我也遇到了同样的问题。已找到系统时钟不同步导致的问题。

通过运行以下命令修复

代码语言:javascript
复制
  vagrant ssh
  sudo apt install ntpdate
  sudo ntpdate ntp.ubuntu.com
  sudo timedatectl set-ntp on
  sudo service ntp stop
  sudo ntpd -gq
  sudo service ntp start
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28249081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档