ホームページ >Java >&#&チュートリアル >Java 1.7 にアップグレードした後、「SSLProtocolException: handshakealert: unrecognized_name」エラーが発生するのはなぜですか?
SSL ハンドシェイク アラート: Java 1.7 アップグレード後の Unrecognized_Name エラー
問題の説明:
後Java 1.7 にアップグレードすると、次のような問題が発生する可能性があります。 Web サーバーへの SSL 接続を確立するときに「SSLProtocolException: ハンドシェイク アラート: unrecognized_name」エラーが発生する。この問題は通常、自己署名されたサーバー証明書または誤って構成されたサーバー証明書にアクセスしようとしたときに発生します。
原因:
Java 1.7 では、デフォルトで Server Name Indication (SNI) のサポートが導入されています。ほとんどの Web サーバーは SNI を効果的に管理しますが、構成が間違っている特定のサーバーは SSL ハンドシェイクで「認識されない名前」アラートを返す場合があります。このアラートは、Java を除くほとんどのクライアントによって無視されます。
解決策:
この問題を解決するには、次のいずれかを採用できます。回避策:
コマンド ライン経由で SNI を無効にする:
次のコマンド ライン オプションを使用してアプリケーションを実行します:
java -Djsse.enableSNIExtension=false yourClass
これにより、グローバルに無効になります。アプリケーション全体の SNI。
Java で SNI を無効にするコード:
または、SSL アクションの前に「jsse.enableSNIExtension」プロパティを設定することで、プログラムで SNI を無効にすることもできます:
System.setProperty("jsse.enableSNIExtension", "false");
Unrecognized_Name アラートの処理:
応援したい方はまだ SNI を使用しているときにサーバーの構成が間違っています:
重要な注意事項:
SNI を無効にすると、セキュリティのベスト プラクティスが損なわれる可能性があります。可能であれば、この問題を回避するには、SNI を正しくサポートするようにサーバーを構成してください。
以上がJava 1.7 にアップグレードした後、「SSLProtocolException: handshakealert: unrecognized_name」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。