PHPcURLエラーコード60


85

Windowsで(wampを使用して)php環境をセットアップしてAmazon PHP SDKを使用しようとすると、サンプルテストを実行しようとすると、次のエラーが発生します。

Fatal error: Uncaught exception 'cURL_Exception' with message 'cURL resource: Resource id #10; cURL error: SSL certificate problem: unable to get local issuer certificate (cURL error code 60). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.' in C:\wamp\www\AWSSDKforPHP\lib\requestcore\requestcore.class.php on line 848

php.iniに次の行を追加しました

curl.cainfo = C:\Windows\ca-bundle.crt

これは、このVBSスクリプトVBS-Scriptを使用して作成した証明書の場所です。

WAMPサービスも再開しました。

PHPインデックスカールリファレンス


6
認証プロセスを気にしない場合は、完全に無効にすることができます curl_setopt($rest, CURLOPT_SSL_VERIFYPEER, false);
denispyr 2015

これで問題は解決しました-stackoverflow.com/a/32095378/178163基本的に2つのphp.iniファイルがある可能性があります
George Kagan

3
私のように初めてこの問題にぶつかった人にとって、この背後にある理由は、私が理解している限り(間違っている場合は訂正してください)、ブラウザーを介したHTTPS接続の状況とは異なり、CURL要求ですサーバーから証明書を取得しません。そのため、サイトの証明書を手動でダウンロードして、PHPiniに追加する必要があります。クライアント側でのこの証明書の検証はHTTPS接続プロセスの一部であり、バイパスできるようです。ここで問題curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);が発生します。
Sandeepan Nath 2017

チャームとして働いた!!!! ありがとう!
Rodrigo Serzedello 2017

回答:


226

この証明書ルート証明書バンドルを使用します。

https://curl.haxx.se/ca/cacert.pem

この証明書バンドルをディスクにコピーします。そしてこれをphp.ini

curl.cainfo = "path_to_cert\cacert.pem"

10
そして、これで問題が解決しない場合はどうなりますか?php.iniに設定curl_setopt($ch, CURLOPT_CAINFO, ini_get('curl.cainfo'));します。ファイルはありますが、それでもエラー60が発生します。何か足りないものがありますか? [cURL] curl.cainfo = C:\dev\xampp\php\cacert.pem
オーバーフロー

3
@Overflowhには2つのタイプがありphp.iniます:1つはphp-cli用、もう1つはphp-web(apache、nginx、...)用です。curl.cainfo = "path_to_cert\cacert.pem"Web用に設定する必要があります。一方、curl.cainfophp情報ビューでtrueを確認できる場合は、権限の問題がある可能性があります。
フセインBABAL

まあ、実際にはcurl.cainfo私のphp情報では見ることができません。これは、値を間違ったファイルに入れたことを意味しますか?
オーバーフロー2014

1
はい、php.iniファイルの場所を再確認してください。あなたは、ウェブ版でそれを配置する必要があります
フセインBABAL

Apache php.iniを追加しましたが、これは機能しませんでした
kasim badami 2015

31

私はでphp.iniファイルを変更することによってこれを修正しましたC:\wamp\bin\apache\apache2.4.9\bin\

curl.cainfo = "C:/wamp/bin/php/php5.5.12/cacert.pem"

最初にでphp.iniファイルを変更してみましたが、機能C:\wamp\bin\php\php5.5.12\しませんでした。

これがphp.ini変更する権利を探している人に役立つことを願っています


1
ありがとう。必要なのは、curl.haxx.se / ca /​​ cacert.pemからファイルをダウンロードし、あなたが言ったようにapachephp.iniファイルにそのファイルへのパスを設定することだけでした。人々に注意してください。cacertはどこにでも配置できます。パスを正しく配置するようにしてください。また、セミコロンは必ず削除してください。
Dan Zuzevich 2017

1
この後、Apacheをリロードすることを忘れないでください。
hcker2000 2018年

17
php --ini

これにより、どのphp.iniファイルがロードされているかが正確にわかるため、どのファイルを変更するかがわかります。WAMPとXAMPPがインストールされていたため、間違ったphp.iniファイルを変更するのに多くの時間を無駄にしました。

また、php.iniを変更した後は、WAMPサーバー(または使用するもの)を再起動することを忘れないでください。


1
命の恩人!3日間のトラブルシューティングで、これが問題であることが判明しました
suo 2017年

13

@Overflowh私も運が悪かったので上記の答えを試しました。この設定はphp5.3.7以降でのみ機能するため、phpのバージョンを5.3.24から5.5.8に変更しました。次に、このhttp://flwebsites.biz/posts/how-fix-curl-error-60-ssl-issueを見つけました。そこからcacert.pemをダウンロードし、curl.hxxx.seからダウンロード/作成したものを置き換えました。上にリンクすると、すべてが機能し始めました。確認のためにペイパルサンドボックスIPNを取得しようとしていました。.pemスワップの後、php.iniのcurl.cainfo設定を使用しても問題ありませんが、5.3.24にはまだありませんでした。


2
私は同じ問題に直面していて、上記の.pemファイルフォームをダウンロードするだけで修正されました。ありがとう
saqibahmad 2015

4
ははは、信じられない!私はFLWebsites.bizを所有していますが、私が言及されていることにまったく気づかずにこの投稿に遭遇しました...私はそのブログを書きました!
HTMLGuy 2015

私は問題を理解しようとしてきました、そして3-4時間後に私はついにこの答えに出くわしました。別のpemファイルをもう一度試してみませんか。そして驚き:それはついに機能しました。そのブログを見つけてくれてありがとう:)
Sauleil 2015年

これにより、Windows 10、IISでのcacert.pemの問題が解決しました。ありがとう。
jacouh 2017年

3
申し訳ありませんが、サイトを削除しました。ソースに直接アクセス
HTMLGuy


5

まず、この証明書ルート証明書バンドルをダウンロードする必要があります。

https://curl.haxx.se/ca/cacert.pem

このファイルをWamp / XamppフォルダーのPHPフォルダーなどに移動します。

次に、「php.ini」を編集します。

curl.cainfo = "C:/path/to/your/cacert.pem"

そして

openssl.cafile = "C:/path/to/your/cacert.pem"

重要:

ウィンドウエクスプローラーで「php.ini」ファイルを直接開くようにしてください。(私の場合:「C:\ DevPrograms \ wamp64 \ bin \ php \ php5.6.25 \ php.ini」)。

システムトレイのWamp / Xamppアイコンのメニューにある「php.ini」へのショートカットは使用しないでください。このショートカットは、私が直面したいくつかのケースでは機能しませんでした。

「php.ini」を保存した後、Wampアイコンで「すべてのサービスを再起動」したり、CMDを閉じたり開いたりする必要はありません。

"var_dump(openssl_get_cert_locations());"を試して、次の行を確認してください:["ini_cafile"] => string(40) "C:/path/to/your/cacert.pem"

完了。


エクスプローラーでphp.iniファイルを開くことについてのあなたのメモは実際に機能しました!そしてついに、wampアイコンのphp.iniのパスが異なることがわかりました。ありがとうございました!!!
Doctiger

4

この問題の最も簡単な解決策は、フィールドに以下のコマンドを追加することです。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);

これを使用すると、証明書などを追加する必要はありません。


3

問題が修正されました。https://curl.haxx.se/ca/cacert.pemをダウンロードして「どこかに」配置し、次の行を追加してphp.iniください。

curl.cainfo = "C:/somewhere/cacert.pem"

PS:xamppを使用してdrupalにモジュールをインストールしようとすると、このエラーが発生しました。


2

以下をphp.iniに追加します[パスで「\」の代わりに「/」を使用します] curl.cainfo = "path / cacert.pem"

XAMPPを再起動しました。それは私にとってはうまくいきました。ありがとう



1

まず、このリンクから証明書をダウンロードする必要があります

https://curl.haxx.se/ca/cacert.pem

ダウンロード可能なファイルの名前を希望する場所に配置します:cacert.pemしたがって、私の場合は、C:\ wamp64 \ bin \ php \ cacert.pemの下に配置します。

次に、php.iniファイルの場所を指定する必要があります

たとえば、php 7を使用しています。php.iniファイルは次の場所にあります:C:\ wamp64 \ bin \ php \ php7.0.10 \ php.ini

したがって、そのファイルにアクセスして、この行のコミットを解除します; openssl.cafile

また、openssl.cafile = "C:\ wamp64 \ bin \ php \ cacert.pem"のように更新します。

最後に、Apacheサーバーを再起動します。これですべてです。


1

重要:4時間後、laravel5.7とphp7。+を使用し、ローカルホストでphpartisonサーブを実行/使用してmailgunに接続しようとします。

問題を解決するための重要なIPhttp://127.0.0.1:8000で機能しない ローカルホストを使用するか、ホストファイルでドメイン名を設定する

OK 、


0

解決策は、apacheのphp.iniではなく、phpバージョン(私にとってはphp7.0.10)にあるphp.iniファイルを編集することです。このようなコメント付きファイルがあります; curl.cainfoこの行を次のように変更するだけですcurl.cainfo = "C:\ permCertificate \ cacert.pem"

「permCertificate」ディレクトリを作成し、その中に「cacert.pem」ファイルをコピーすることを忘れないでください。


Amppsで私のために働いています、ありがとう
Alejandro Aranda

-1

何がうまくいったか知っているので、https ://curl.haxx.se/ca/cacert ....のファイルは機能しませんでしたが、(http:// flwebsites)の投稿のzipフォルダーにあるファイルは機能しませんでした。 .biz / posts / how-fix-curl-error-60-ssl-issue)は、まったく問題なく機能しました。

他の人が言っているように、証明書ファイルをハードドライブ上の場所にコピーし、行を更新します

;curl.cainfo 

php.iniファイルで読む

curl.cainfo= "path_to_cert\cacert.pem"

Apacheサーバーを再起動します。


リンクされているウェブサイトはスパムです。
RickKukiela20年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.