gpt4 book ai didi

Java TLS : Disable SNI on client handshake

转载 作者:行者123 更新时间:2023-12-04 22:40:53 25 4
gpt4 key购买 nike

我正在尝试创建一个不会发送 server_name 的 JVM HTTP 客户端。在客户端握手中(说来话长,但我正在模拟一个不支持 SNI 的遗留系统)。
设置serverNames SSLParameters不成功,我仍然可以在 Wireshark 中看到“服务器名称指示扩展”。

fun run() {
val keyStore = keyStore()
val trustFactory =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
trustFactory.init(keyStore)
val sslContext = SSLContext.getInstance("SSL")
sslContext.init(null, trustFactory.trustManagers, null)

val httpClient = HttpClient.newBuilder()
.sslContext(sslContext)
.sslParameters(sslContext.defaultSSLParameters.apply {
serverNames = null
})
.build()

val request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com/hello"))
.GET()
.build()

httpClient.send(request, HttpResponse.BodyHandlers.ofString())
}
this gist. 中的完整代码
如何阻止客户端发送 SNI 扩展?

最佳答案

如果您不介意适用于整个 JVM 的设置,请尝试

jsse.enableSNIExtension=false

关于Java TLS : Disable SNI on client handshake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64025494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com