ホームページ >バックエンド開発 >PHPチュートリアル >「stream_socket_enable_crypto(): SSL 操作がコード 1 で失敗しました」エラーを解決するにはどうすればよいですか?

「stream_socket_enable_crypto(): SSL 操作がコード 1 で失敗しました」エラーを解決するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-19 11:01:30656ブラウズ

How to Resolve

「stream_socket_enable_crypto(): SSL 操作がコード 1 で失敗しました」エラーを解決します

「stream_socket_enable_crypto()」エラーは、SSL での失敗を示します/TLS通信。エラー メッセージは証明書の検証の問題を示唆していますが、根本的な原因を理解し、適切な解決策を実装することが重要です。

エラーの原因

問題の原因は多くの場合、次のとおりです。自己署名 SSL 証明書を使用しているか、ホスト名検証エラーが発生しています。デフォルトでは、PHP 5.6 は SSL 接続の信頼性を検証します。これにより、適切に発行されていない証明書や、証明書と一致しないホスト名によって問題が発生する可能性があります。

解決策

このエラーを解決するには、安全な接続を維持しながら SSL 検証を無効にします。これを行うには、次のコードを 'config/mail.php' ファイルに追加します。

<code class="php">'stream' => [
    'ssl' => [
        'allow_self_signed' => true,
        'verify_peer' => false,
        'verify_peer_name' => false,
    ],
],</code>

このコードは、自己署名証明書を受け入れ、ホスト名の検証を無効にするように PHP に指示します。この解決策は差し迫った問題を解決しますが、セキュリティに影響を与えることに注意することが重要です。

セキュリティに関する考慮事項

SSL 検証を無効にすると、人為的攻撃から保護する基礎的な安全装置が削除されます。 -in-the-Middle (MITM) 攻撃。検証を行わないと、信頼できるエンドポイントになりすまして機密データを傍受できる潜在的な攻撃者に対して脆弱になります。

したがって、このソリューションを実装する前に、これらのセキュリティ上の懸念を慎重に考慮することが重要です。可能であれば、適切に発行された SSL 証明書を取得し、ホスト名が一致していることを確認して、SSL 検証の無効化に伴うリスクを軽減してください。

以上が「stream_socket_enable_crypto(): SSL 操作がコード 1 で失敗しました」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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