ホームページ >バックエンド開発 >PHPチュートリアル >`file_get_contents()` 呼び出しが「SSL 操作がコード 1 で失敗しました」というメッセージで失敗するのはなぜですか?どうすれば修正できますか?

`file_get_contents()` 呼び出しが「SSL 操作がコード 1 で失敗しました」というメッセージで失敗するのはなぜですか?どうすれば修正できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 00:24:10430ブラウズ

Why is my `file_get_contents()` call failing with

コード 1 で SSL 操作が失敗しました: 理解と対処

file_get_contents() を使用して安全な Web サイトにアクセスすると、「SSL 操作」などのエラーが発生しますコード 1 で失敗しました」というエラーが発生する可能性があります。このエラーは、証明書の検証または OpenSSL 構成に関する問題を示しています。

この特定のシナリオでは、問題は PHP 5.6 の強化された SSL セキュリティ対策に起因しています。これを解決するには、リクエストのコンテキスト オプション内で verify_peer と verify_peer_name を false に設定して、証明書の検証を無効にする必要がありました:

$arrContextOptions = array(
    "ssl" => array(
        "verify_peer" => false,
        "verify_peer_name" => false,
    ),
);

$response = file_get_contents($url, false, stream_context_create($arrContextOptions));

注意: 証明書の検証を無効にすると、次のような可能性があることに注意することが重要です。中間者 (MITM) 攻撃の可能性が生じるため、セキュリティに重大な影響を及ぼします。このソリューションは、潜在的なリスクを十分に理解し、他に実行可能な選択肢がない場合にのみ使用してください。

上記のケースでは、証明書の検証を無効にすることで問題が解決され、リクエストが成功するようになりました。ただし、安全な通信を確保するために、SSL 障害の根本的な原因を調査し、適切に対処することを常にお勧めします。

以上が`file_get_contents()` 呼び出しが「SSL 操作がコード 1 で失敗しました」というメッセージで失敗するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。