web-dev-qa-db-ja.com

Composer packagistからの更新中に更新が失敗する

composer install/updateの実行中に、opensslから次のエラーが発生しました。

https://packagist.org/packages.json 」ファイルをダウンロードできませんでした。SSL操作はコード1で失敗しました。OpenSSLエラーメッセージ:エラー:14090086:SSLルーチン: SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました暗号化を有効にできませんでしたストリームを開くことができませんでした:操作に失敗しました https://packagist.org を完全にロードできませんでした、パッケージ情報はローカルキャッシュからロードされ古くなっている可能性があります

使っています:

  1. PHP 5.6.3(cli)(ビルド:2014年11月17日15:16:53)
  2. XAMPPスタック5.6.3-0
  3. ubuntu 14.04

作曲家の診断ショー:

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: 

[Composer\Downloader\TransportException]
https://getcomposer.org/version 」ファイルをダウンロードできませんでした。SSL操作はコード1で失敗しました。OpenSSLエラーメッセージ:
エラー:14090086:SSLルーチン:SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました
暗号化を有効にできませんでした
ストリームのオープンに失敗しました:操作が失敗しました

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) ""
}

Php 5.5.19の場合はすべて問題ありません。

29
yuklia

これに対する解決策を見つけました

私は走っています:
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/local/lib/Perl5/site_Perl/5.16/Mozilla/CA/cacert.pem

注:このディレクティブはphp 5.6.xでのみ使用可能です

次に、Apacheを再起動します

27
Manuel Ochoa

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

Apacheを再起動することを忘れないでください!

11
kipzes

私はMac OS Sierraを使用していて、composerコマンド/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  

次の手順に従って修正しました。

1)次のコマンドを使用してローカルデータベースを作成します。

Sudo launchctl load -w /System/Library/LaunchDaemons/com.Apple.locate.plist

2)証明書ファイルを見つけます:

locate cacert.pem 

3)php.iniファイルの場所を確認します。

php --ini

4)php.iniファイルは(none)、ファイルをコピーします/etc/php.ini.defaultから/etc/php.ini

Sudo cp /etc/php.ini.default /etc/php.ini

5)php.iniファイルを作成し、;openssl.cafile=行のコメントを外し、リンクを証明書ファイルの場所に追加します。

openssl.cafile=/Users/me/.composer/cacert.pem

それでおしまい。これで、composerアップデートを実行すると、正常に動作します。

9
Neel

Openssl.cafileをphp.iniに追加してもうまくいきました。証明書ファイルを探す代わりに、直接ダウンロードしました。

curl http://curl.haxx.se/ca/cacert.pem > cacert.pem

それからopenssl.cafileの設定を指定しました。

4
phoenix
composer clearcache

エラーが発生したとき、これは私のために働いた:

https://packagist.org を完全にロードできませんでした。パッケージ情報はローカルキャッシュからロードされたため、古くなっている可能性があります

2
sim

XAMPPを搭載したMacの場合:

cd /Applications/XAMPP/xamppfiles/share/openssl

Sudo curl -O -k http://curl.haxx.se/ca/cacert.pem

Sudo mv cacert.pem cert.pem

Apacheの停止と再起動

1
user5030739

ダウンロードした有効な最新の証明書を追加した後でも、Windowsでまったく同じ問題に遭遇しました。 composer=プロキシの背後で実行しているため、環境変数http_proxyおよびhttps_proxyを追加する必要があります。

私の環境:PHP 5.6.33 Windows 7 64 bit 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

その後、次の手順を実行しました

1)chromeブラウザーを開いてナビゲート https://packagist.org/

2)小さなセキュアロックアイコンをクリックします

3)有効な証明書をクリックします

enter image description here

4)[証明書のパス]タブを開くと、次のパスレベルが表示されます。

enter image description here

5)画像にマークされている1と2の両方の証明書をエクスポートする必要があります

6)証明書をエクスポートするには、[証明書の表示]をクリックし、[詳細]タブに移動して、[ファイルにコピー]をクリックします

enter image description here

7)BASE 64エンコーディングを選択

enter image description here

8)[次へ]をクリックし、そのファイルを場所に保存します。これは、setp 4に示されている番号(2)に対して行います。

enter image description here

9).cerファイルを開き、php.iniで設定するために使用した.crtファイルの最後にコンテンツをコピーします

その後、comport installを実行してみてください-それは私のために働いています

プロキシ経由でサイトにアクセスするときにcomposer throwing sslエラーが発生した場合、プロセスは同じである必要があります。

1
Praveen Govind

1。

php -r "print_r(openssl_get_cert_locations());"
array(8) {
  ["default_cert_file"]=>
  string(31) "/usr/local/etc/openssl/cert.pem"
  ...
}

2.vim php.ini

[openssl]
openssl.cafile=/usr/local/etc/openssl/cert.pem
1
shengji yin

この構成をcomposer.jsonファイルに追加するだけです。

"config": {
"secure-http": false
}

動作するcomposer.jsonファイルの完全な例を次に示します

  "repositories": [{
    "type": "composer",
    "url": "http://packagist.org"
  }],
  "require": {
    "phpmailer/phpmailer": "^6.0"
  },
  "config": {
    "secure-http": false
  }
}
```
0
Leon Hoffmann

私たちにとって、この問題は私たちのプライベートリポジトリの1つにのみ影響を与えるように思われました。証明書や企業のファイアウォールに関連している可能性がありますが、断続的に見えたため、別の修正を見つける前に確認できませんでした。

Composer.json内で、リポジトリURLをhttpsからsshバリアントに変更し、"no-api": trueオプション:

"repositories": [
    {
      "type": "vcs",
      "url": "[email protected]:our-user/our-repo.git",
      "no-api": true
    }
]

その編集により、composer update/install操作は正常に完了しました。

0
Everett
locate cacert.pem

vi /usr/local/lib/php.ini

#add this

openssl.cafile=/usr/local/share/Perl5/Mozilla/CA/cacert.pem

# press esc then type
:wq #enter

curl -sS https://getcomposer.org/installer | php -- —version=1.0.0-alpha10

mv composer.phar /usr/local/bin/composer

alias composer='/usr/local/bin/composer'

composer -V

php /usr/local/bin/composer global self-update

cd .composer/
composer init
0
WJN

First:_default_cert_file_キーにある証明書ファイルの場所を確認します。openssl_get_cert_locations()にありますphp openssl関数。次のように実行できます。

_$ php -r "print_r(openssl_get_cert_locations());"
_

私のシステムでの出力

_    Array
    (
        [default_cert_file] => /opt/lampp/share/openssl/cert.pem
        [default_cert_file_env] => SSL_CERT_FILE
        [default_cert_dir] => /opt/lampp/share/openssl/certs
        [default_cert_dir_env] => SSL_CERT_DIR
        [default_private_dir] => /opt/lampp/share/openssl/private
        [default_default_cert_area] => /opt/lampp/share/openssl
        [ini_cafile] => 
        [ini_capath] => 
    )
_

Second:ダウンロード http://curl.haxx.se/ca/cacert.pem

_$ wget http://curl.haxx.se/ca/cacert.pem
_

3番目:_certificate.pem_ファイルを_default_cert_file_の場所にコピーします:

_$ Sudo mv cacert.pem /opt/lampp/share/openssl/cert.pem
_

** FROM https://github.com/composer/composer/issues/3346 **

0
Amanuel Nega