[SSL] 「ssl3_get_server_certificate:certificate verify failed」というエラーが突然発生した話

PHP

さくらVPNを使っているのですが、2021/09/30頃に突然エラーが発生しました。

エラーの内容

エラーの内容は以下の通りです。

Warning: fopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in (以下省略)

SSLに関するエラーのようでした。SSLサーバー証明書はLet’s Encryptを利用しています。有効期限切れではなく、なぜこのようなエラーが発生したのかわかっていません。

同じドメインで同じサーバーに置いているCSVファイルを開く時にエラーが発生していました。このエラーメッセージで検索すると、php.iniを書き換える方法と、fopenの時に引数を加える方法が出てきましたが、どちらでも改善しませんでした。

広告

解決した方法

CSVファイルのパスを絶対パスから相対パスに変更したら、エラーが出なくなりました。

修正前

$f = fopen("https://wiz.ooo/xxxx/xxxx.csv", "r");
while($line = fgetcsv($f)) {
    //省略
}

修正後

$f = fopen("../xxxx/xxxx.csv", "r");
while($line = fgetcsv($f)) {
    //省略
}

急にエラーが発生した原因はわかっておらず、根本的な問題も解決していませんが、とりあえずこれで直りました。何かわかったら追記します。

広告