composer install/updateの実行中に、opensslから次のエラーが発生しました。
「 https://packagist.org/packages.json 」ファイルをダウンロードできませんでした。SSL操作はコード1で失敗しました。OpenSSLエラーメッセージ:エラー:14090086:SSLルーチン: SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました暗号化を有効にできませんでしたストリームを開くことができませんでした:操作に失敗しました https://packagist.org を完全にロードできませんでした、パッケージ情報はローカルキャッシュからロードされ古くなっている可能性があります
使っています:
作曲家の診断ショー:
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の場合はすべて問題ありません。
これに対する解決策を見つけました
私は走っています:
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を再起動します
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を再起動することを忘れないでください!
私は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アップデートを実行すると、正常に動作します。
Openssl.cafileをphp.iniに追加してもうまくいきました。証明書ファイルを探す代わりに、直接ダウンロードしました。
curl http://curl.haxx.se/ca/cacert.pem > cacert.pem
それからopenssl.cafileの設定を指定しました。
composer clearcache
エラーが発生したとき、これは私のために働いた:
https://packagist.org を完全にロードできませんでした。パッケージ情報はローカルキャッシュからロードされたため、古くなっている可能性があります
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の停止と再起動
ダウンロードした有効な最新の証明書を追加した後でも、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)有効な証明書をクリックします
4)[証明書のパス]タブを開くと、次のパスレベルが表示されます。
5)画像にマークされている1と2の両方の証明書をエクスポートする必要があります
6)証明書をエクスポートするには、[証明書の表示]をクリックし、[詳細]タブに移動して、[ファイルにコピー]をクリックします
7)BASE 64エンコーディングを選択
8)[次へ]をクリックし、そのファイルを場所に保存します。これは、setp 4に示されている番号(2)に対して行います。
9).cerファイルを開き、php.iniで設定するために使用した.crtファイルの最後にコンテンツをコピーします
その後、comport installを実行してみてください-それは私のために働いています
プロキシ経由でサイトにアクセスするときにcomposer throwing sslエラーが発生した場合、プロセスは同じである必要があります。
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
この構成をcomposer.jsonファイルに追加するだけです。
"config": {
"secure-http": false
}
動作するcomposer.jsonファイルの完全な例を次に示します
"repositories": [{
"type": "composer",
"url": "http://packagist.org"
}],
"require": {
"phpmailer/phpmailer": "^6.0"
},
"config": {
"secure-http": false
}
}
```
私たちにとって、この問題は私たちのプライベートリポジトリの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操作は正常に完了しました。
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
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
_