WordPress プラグインアップデートエラー : curl

投稿者: | 8月 7, 2021
SERV-OPS.COM

WordPress プラグインのアップデートを実行したときに次のようなエラーが発生することがあります。

cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

このエラーは、WordPressを動作させているPHPの curl がHTTPS接続の認証につかう証明書ファイルが取得できないために発生しています。

WordPressだけでなく、 PHP のプログラムで curl を使用している場合には同様のエラーが発生することがあります。

このエラーは、以下の対策で修正することができます。

  • 新しい証明書ファイル (cacert.pem) を取得する
  • php.ini を書き換えて curl が、cacert.pem を使用するようにする

cacert.pem のダウンロードと配置

cacert.pem は、curlライブラリの公式サイトからダウンロードできます。

公式サイトのメニュー Documentation → CA Bundle のページを開きます。
cURL Library Web Site caceert.pem download
CA Bundle のページに、最新の「 cacert.pem 」のダウンロードリンクがあるので、最新の cacert.pem をダウンロードします。

ダウンロードした 証明書ファイルを、対象のサーバーに保存します。
今回は、/opt/etc/php.d/ 以下に保存しました。

$ sudo mkdir -p /opt/etc/php.d/
$ sudo cp ~/cacert.pem /opt/etc/php.d/

php.ini の書き換え

cacert.pem の保存ができたら、保存した cacert.pem を PHP の curl ライブラリが使用するように php.ini を変更します。

$ sudo vi /etc/php.ini

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "/opt/etc/php.d/cacert.pem"

php.ini の修正が完了したら、WordPressを動作させている Webサーバー(今回は Apache httpd) を再起動します。

$ sudo systemctl restart httpd

これで WordPress のプラグインを更新したときなど、 curl を使用した場合に「 SSL certificate problem 」のエラーが発生しなくなります。