このサイトには一部広告が含まれています

XAMPPで failed loading cafile stream が出たときの対処法【cacert.pem】

この記事は約4分で読めます。

XAMPPでHTTPSに接続したときに「failed loading cafile stream」や「Failed to enable crypto」が出たら、CA証明書ファイルの設定を確認してみましょう。cURLとOpenSSLでは確認する項目が異なります。

こんなメッセージ出てませんか?

Warning: failed loading cafile stream: `C:\xampp\apache\bin\curl-ca-bundle.crt’ in…

Warning: simplexml_load_file(): Failed to enable crypto in…

上の例では、PHPが C:\xampp\apache\bin\curl-ca-bundle.crt を読み込もうとして失敗しています。

ただし、XAMPPなら必ずこの場所を使うわけではありません。まずは現在の設定を確認します。

まずphp.iniとCAファイルの設定を確認

phpinfo() を開き、以下の3項目を確認します。

  • Loaded Configuration File
  • curl.cainfo
  • openssl.cafile

Loaded Configuration File には、現在PHPが読み込んでいる php.ini の場所が表示されます。

確認用のPHPファイルを作るなら、中身はこれだけでOKです。

<?php
phpinfo();

XAMPP公式でも、php.iniの変更が反映されない場合は Loaded Configuration File を確認するよう案内されています。

cacert.pemをダウンロード

CAファイルが無い、または参照先にファイルが存在しない場合は、curl公式サイトから cacert.pem をダウンロードします。

cacert.pem は、HTTPS接続時に相手の証明書を確認するためのCA証明書をまとめたファイルです。

ここでは例として、ダウンロードしたファイルを以下へ保存します。

C:\xampp\php\extras\ssl\cacert.pem

cURLを使っている場合

PHPのcURLでHTTPSへ接続している場合は、php.ini の curl.cainfo に先ほどのファイルを指定します。

curl.cainfo = "C:/xampp/php/extras/ssl/cacert.pem"

curl.cainfo は絶対パスで指定します。ファイル名は curl-ca-bundle.crt でなくても構いません。

simplexml_load_file()などでエラーが出る場合

simplexml_load_file() や file_get_contents() などでHTTPSのURLを読み込んでいる場合は、OpenSSL側の設定も確認します。

php.ini の openssl.cafile に同じCAファイルを指定します。

openssl.cafile = "C:/xampp/php/extras/ssl/cacert.pem"

cURLとOpenSSLの両方を使うなら、同じ cacert.pem をそれぞれ指定しておけばOKです。

curl.cainfo = "C:/xampp/php/extras/ssl/cacert.pem"
openssl.cafile = "C:/xampp/php/extras/ssl/cacert.pem"

今回と同じパスが表示されているなら

エラーに、

C:\xampp\apache\bin\curl-ca-bundle.crt

と表示されている場合は、PHPがそのファイルを読みに行っていることが分かります。

現在の設定をそのまま使いたいときは次の方法でも対処できます。

  1. cacert.pem をダウンロード
  2. ファイル名を curl-ca-bundle.crt に変更
  3. C:\xampp\apache\bin\ に移動

cacert.pem は必ず curl-ca-bundle.crt という名前に変更しなければ使えないわけではありません。

PHPでは curl.cainfo や openssl.cafile でCAファイルを直接指定できるので、新しく設定するならこちらの方が参照先も分かりやすいです。

最後にApacheを再起動

php.ini 変更後はXAMPPのコントロールパネルからApacheを一度停止して再起動します。

これを忘れると設定が反映されないのでご注意を。

更新履歴
  • 2026年10月4日:CA証明書の設定方法を見直し、curl.cainfo と openssl.cafile の確認手順を追加。特定のファイル名・保存先を前提とした説明も修正

コメント欄

タイトルとURLをコピーしました