[gogf/gf]涉及tls的建议

2024-06-25 85 views
1

httpclient,httpserver 虽然支持https,但是不能自定义tls的一些参数,比如信任ca,tls双向认证,证书校验,这些在很多安全要求高的领域都是必须的。其实给一个tls.Config设置的入口即可。另外HttpClient应该可以自定义设置tr,这样才能把HttpClient的方便性更好的发挥出来。

回答

7

@snail007 感谢反馈,TLS选项目前确实无法设置,后续会进行改进。此外,你指的自定义HTTPClient的tr是什么?

5

http.Client.Transport 用来自定义传输。

6

好的,正在改进。

2

@snail007 TLS的配置可以通过这两个方法进行设置func (s *Server) EnableHTTPS(certFile, keyFile string, tlsConfig ...tls.Config)或者func (s *Server) SetTLSConfig(tlsConfig tls.Config),具体请参考接口文档:https://godoc.org/github.com/gogf/gf/g/net/ghttp

此外,HTTP客户端的Transport属性是可以设置的,因为ghttp.Client是继承于标准库的http.Client,例如:

client := ghttp.NewClient()
client.Transport = &http.Transport {
    DisableKeepAlives: true,
}
result := client.GetContent("https://baidu.com")
fmt.Println(result)
4

已经看到了,框架很好用,能看出十分用心的在做,另外tcp server websocket都可以考虑tls的配置。 以后准备用gf了。

3

@snail007 感谢支持!后续会根据你的建议继续改进!

2

@snail007 WebSocket增加了对HTTPS/WSS的支持,请参考考法文档:https://goframe.org/net/ghttp/websocket/indexgtcp包增加TLS的支持优先级没那么高,已加到TODO中计划处理,会在后续功能开发中增加支持。这个issue就先关闭了。

3

那么现在的ghttp client的tls怎么设置呢

9

下个新版本会增加TLS设置的便捷方法。