httpclient,httpserver 虽然支持https,但是不能自定义tls的一些参数,比如信任ca,tls双向认证,证书校验,这些在很多安全要求高的领域都是必须的。其实给一个tls.Config设置的入口即可。另外HttpClient应该可以自定义设置tr,这样才能把HttpClient的方便性更好的发挥出来。
Q
[gogf/gf]涉及tls的建议
1
A
回答
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/index 。gtcp
包增加TLS
的支持优先级没那么高,已加到TODO中计划处理,会在后续功能开发中增加支持。这个issue就先关闭了。
3
那么现在的ghttp client的tls怎么设置呢
9
下个新版本会增加TLS设置的便捷方法。