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