比如围棋:
func main() {
ln, _ := net.Listen("tcp",":443")
ln = tls.NewListener(ln, &tls.Config{
GetCertificate: func (info *clientHelloInfo) (Certificate, error) {
// from db or dynamic generate a certificate use "info.ServerName"
cert := generateX509Certificate(info.ServerName)
return cert, nil
}
})
}
在Go语言中,我可以实现在第一次访问一个域时(甚至是一个并发请求),只有一个goroutine负责生成证书,当证书生成完成后,所有的连接都立即成功。
不知道。因为Spring是通过Netty调用的,但是不知道如何修改Spring的Netty行为。
1条答案
按热度按时间k4emjkb11#
结论
找不到像Golang这样可以直接生成SSL证书的软件包,相关代码样本均来自网络,修改后组合,仅供poc验证,相关许可和版权归原作者所有,代码经测试可执行。
示例代码
项目目录
pom.xml文件
Main.java
要求
运行应用程序
在项目目录下执行命令:
第一个月
打开
浏览器打开https://localhost:8443/demoapp