tag:crieit.net,2005:https://crieit.net/tags/curl/feed 「curl」の記事 - Crieit Crieitでタグ「curl」に投稿された最近の記事 2021-07-15T22:35:47+09:00 https://crieit.net/tags/curl/feed tag:crieit.net,2005:PublicArticle/17518 2021-07-15T22:35:47+09:00 2021-07-15T22:35:47+09:00 https://crieit.net/posts/guzzule-error-in-xampp-20210715 Guzzle Client で cURL error 60: SSL certificate problem: self signed certificate in certificate chain エラー <h2 id="現象"><a href="#%E7%8F%BE%E8%B1%A1">現象</a></h2> <p>XAMPP 上で <a target="_blank" rel="nofollow noopener" href="https://packagist.org/packages/guzzlehttp/guzzle">Guzzle Client</a> を利用しようとしたら以下のようなエラーが発生しました。</p> <blockquote> <p>GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: self signed certificate in certificate chain (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://example.jp/</p> </blockquote> <h2 id="前提"><a href="#%E5%89%8D%E6%8F%90">前提</a></h2> <p>この XAMPP 環境は以前<a target="_blank" rel="nofollow noopener" href="https://labor.ewigleere.net/2020/02/24/xampp-php-update/">XAMPPのPHPのバージョンをアップグレードする ( 7.1.7 → 7.4.3 )</a>で PHP のバージョンを上げていました。</p> <h2 id="調査"><a href="#%E8%AA%BF%E6%9F%BB">調査</a></h2> <p>XAMPP の PHP について <code>php.ini</code> を確認。</p> <pre><code class="ini">extension=curl </code></pre> <p>まずここはOK。</p> <pre><code class="ini">[curl] ; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. ;curl.cainfo = </code></pre> <p>あ、SSL証明書の指定がないですね。</p> <p>ちなみに元々 XAMPP に入っていたバージョンの <code>php.ini</code> では</p> <pre><code class="ini">[curl] ; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. curl.cainfo="PATH:\TO\xampp\apache\bin\curl-ca-bundle.crt" </code></pre> <p>SSL証明書の指定がありました。</p> <p>パス先にSSL証明書が存在していることを確認の上、パスを現行の <code>php.ini</code> に貼り付けます。</p> <pre><code class="ini">[curl] ; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. ;curl.cainfo = curl.cainfo="PATH:\TO\xampp\apache\bin\curl-ca-bundle.crt" </code></pre> <p>これで XAMPP の Apache を再起動したところ、エラーは出なくなりました。</p> <h2 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h2> <ul> <li><a target="_blank" rel="nofollow noopener" href="http://nanoappli.com/blog/archives/7992">‘cURL error 60’エラーが出たときの対処法 ‘cURL error 60: SSL certificate problem: unable to get local issuer certificate’</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://linuxfan.info/curl-insecure">curlで「自己署名証明書」を受け入れるには【curl: (60) SSL certificate problem: self signed certificate】 | LFI</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://madadou.info/2018/05/08/curl-error-60/">cURL error 60: SSL certificate (GuzzleHttp v6) | まだどう?</a></li> </ul> arm-band