composer: OpenSSL Errors on Installation Instructions

Following the installer instructions, and running php composer-setup.php after Installer was verified, this was output:

All settings correct for using Composer

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /Users/thelostspore/composer-setup.php on line 762

Warning: file_get_contents(): Failed to enable crypto in /Users/thelostspore/composer-setup.php on line 762

Warning: file_get_contents(https://getcomposer.org/versions): failed to open stream: operation failed in /Users/thelostspore/composer-setup.php on line 762

Warning: Invalid argument supplied for foreach() in /Users/thelostspore/composer-setup.php on line 508
None of the 0 stable version(s) of Composer matches your PHP version (5.5.34 / ID: 50534)

Could I be missing other requirements for installing composer?

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 30 (8 by maintainers)

Most upvoted comments

Figured it out. Dug through the downloaded composer-setup.php source and discovered this line in getSystemCaRootBundlePath method body:

 // If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that.
 $envCertFile = getenv('SSL_CERT_FILE');

I downloaded a cert bundle and set this directory for values in my php.ini (/etc/php.ini).

[openssl]
openssl.cafile=/etc/ssl/certs/cacert.pem
openssl.capath=/etc/ssl/certs/

I set the env var SSL_CERT_FILE to the path of the cert file and the openssl issues were resolved.

I ran into the same issue with Homebrew and PHP 7.0.8.

I downloaded the cacert: wget http://curl.haxx.se/ca/cacert.pem

I then update the openssl.cafile in the php.ini file.

I had the same issue and tried everything, including messing around with the certificate files.

Turned out to be Kapersky Antivirus…

Thanks to @marcovtwout on his comment on another thread

This is closed but leaving for others incase they land here -

If you’re on a Mac, fix is simple:

sudo mkdir -p /usr/local/libressl/etc/ssl/certs sudo curl -o /usr/local/libressl/etc/ssl/cert.pem https://curl.haxx.se/ca/cacert.pem

In our office, 3/5 developers on our team have OpenSSL-related issues with Composer.

The failure messages do not provide any indication as to what the real issue is, and OpenSSL configuration is not listed as a system requirement.

How exactly could OpenSSL be broken or misconfigured for Composer, specifically? I don’t have OpenSSL related issues with any other OSS. I’m using the built-in system version that ships with ElCap (0.9.8zh), using default configuration.

Given that this has been an ongoing issue, I have two ideas - could the composer installation script attempt to check if OpenSSL configuration is “correct”? Perhaps the script could point the user to a wiki with instructions as to how to remedy their workstation if there are problems. Maybe a section in the troubleshooting article?

Is there anything out there that would help guide a user through these problems for Composer? It would be great if the diagnose command provided more information as to the root cause(s). As of now, I’m unsure what will fix this issue.

The real issue is that 99 out of 100 times, this is simply the result of a broken and/or improperly configured environment on the user side. There is nothing Composer can do to remedy this. So I am very reluctant with assigning the “bug” label to openssl related issues.