file_get_contents() SSL 証明書検証エラーのトラブルシューティング
PHP 5.6 で file_get_contents() を使用して REST サービスにアクセスしようとすると、次のような問題が発生する可能性があります。証明書が厳格化されたため、エラー「SSL 操作がコード 1 で失敗しました」
問題の説明
ユーザーの PHP ページは、file_get_contents() を使用して HTTPS エンドポイントからデータを取得しようとします。ただし、次のエラーが表示されて失敗します:
根本原因
PHP 5.6 では、デフォルトでより厳格な SSL 検証が導入され、正確な証明書の検証が必要になりました。このエラーは、クライアントがリモート サーバーの証明書を検証できないことを示しています。
解決策
この問題を解決するために、OpenSSL に関する公式 PHP ドキュメントは 5.6 で変更され、証明書の検証を無効にすることが推奨されています。 注: このソリューションはセキュリティに重大な影響を及ぼします。クライアントとサーバー間の信頼が確立されている管理された環境でのみ検討する必要があります。
$arrContextOptions = array( "ssl" => array( "verify_peer" => false, "verify_peer_name" => false, ), ); $response = file_get_contents("remote_url", false, stream_context_create($arrContextOptions));
重要注
SSL 証明書の検証を無効にすると、セキュリティが低下し、アプリケーションが盗聴やその他のセキュリティ侵害にさらされる可能性があります。この回避策に頼るのではなく、信頼できる SSL 証明書を使用するようにシステムを正しく構成することを強くお勧めします。
以上がPHP の `file_get_contents()` の「SSL 操作がコード 1 で失敗しました」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。