首頁 > Java > java教程 > 為什麼升級到 Java 1.7 後出現「SSLProtocolException:握手警報:unrecognized_name」錯誤?

為什麼升級到 Java 1.7 後出現「SSLProtocolException:握手警報:unrecognized_name」錯誤?

Barbara Streisand
發布: 2024-12-04 07:01:15
原創
1060 人瀏覽過

Why Am I Getting an

SSL 握手警報:Java 1.7 升級後出現Unrecognized_Name 錯誤

問題描述:

問題描述:

問題描述:

問題描述:

問題描述:

原因:

java -Djsse.enableSNIExtension=false yourClass
登入後複製
Java 1.7 預設引入了對伺服器名稱指示 (SNI) 的支援。雖然大多數網頁伺服器有效管理 SNI,但某些配置錯誤的伺服器可能會在 SSL 握手中傳回「無法識別的名稱」警報,大多數用戶端都會忽略該警報,Java 除外。

解決方案:

要解決此問題,您可以採用以下方法之一解決方法:

System.setProperty("jsse.enableSNIExtension", "false");
登入後複製
透過命令列停用SNI:

使用以下命令列選項來執行您的應用程式:

這將全域停用整個應用程式的 SNI。
  1. 在Java 中停用SNI程式碼:
  2. 或者,您可以透過在任何SSL 操作之前設定「jsse.enableSNIExtension」屬性以程式方式停用SNI:

處理Unrecognized_Name警報:

如果您希望支援設定錯誤的伺服器同時仍使用 SNI:

使用所需的主機名稱建立 SSLSocket。 嘗試啟動握手 (sslsock.startHandshake())。 如果發生 unrecognized_name 錯誤,透過建立一個沒有主機的新 SSLSocket 來停用 SNI名稱。 重要提示:停用 SNI 可能會損害安全最佳實務。如果可能,請配置您的伺服器以正確支援 SNI 以避免此問題。

以上是為什麼升級到 Java 1.7 後出現「SSLProtocolException:握手警報:unrecognized_name」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板