さくらインターネットのPHPを介してデータ取得できない場合の対応策

今日からさくらインターネットで稼働しているPHPのcURL,file_get_contentsでデータが取得できなくなりました。cURLは60エラー(CURLE_PEER_FAILED_VERIFICATION)。
SSLに関するエラーのようなので調べて見ると2021/9/30に『DST Root X3』終了が原因っぽい感じでした。

情報が見当たらずチャットで質問しました。
以下回答です。

ご申告のエラーにつきまして無料SSL証明書が関わっている可能性がございます。

9月30日でLet’s Encryptのルート証明書DST Root X3が失効となっております。

通常のさくらのレンタルサーバにおけるWebサイト配信には特に影響はないものの、例えば、さくらのレンタルサーバ内から、PHPを介して外部サーバへ接続する際、ルート証明書がなくて接続できないエラーが発生している可能性があります。

担当部門にて確認しましたところ、こちらの事象につきましては、弊社サーバ上でLet’s Encryptを利用していなくとも、接続先のサーバで使用している場合でも同様にエラーが発生いたします。

対処としましては、以下一例ではございますが、例えば、curlの場合、

$ curl https://example.com/ -k

のように、証明書の検証を無効化することで接続が可能となる可能性がございます。

なお、お客様にてご用意いただくサーバ内部コンテンツに関しましては、
サポート範囲外の内容となりますため、詳細については専門書籍や関連サイト等を参照頂けますようお願い申し上げます。

目次

対応策

証明書の検証を無効化する

$url = 'https://www.google.co.jp/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//CA証明書の検証をしない

$file = curl_exec($ch);
curl_close($ch);
$url='https://www.google.co.jp/';
$options = stream_context_create(array('ssl' => array(
  'verify_peer'      => false,
  'verify_peer_name' => false
)));
$file = file_get_contents($url, false, $options);

今の所ConoHaで動いているスクリプトは問題なさそう

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!

コメント

コメントする

目次
閉じる