比如 go
func main() {
ln, _ := tls.Listen("tcp", ":433", &tls.Config{
GetCertificate: func(info *tls.ClientHelloInfo) (*tls.Certificate, error) {
// 使用 info.ServerName 从 DB 或者临时生成
cert := generateX509Certificate(info.ServerName)
return cert, nil
},
})
http.ServeTLS(ln, nil, "", "")
}
Java 有类似的机制吗。哪怕是并发请求,也可以控制只有一个请求触发生成证书,其他请求 hold 住,等证书一旦生成成功,所有请求立刻进行接下来的握手(超时的不算)
Java 中不同的框架处理方式一样吗?
比如 javax.net.ssl.SSLContext 和使用 netty 的 spring 全家桶都适用的方法?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.