12345678910111213141516171819202122232425262728293031323334 |
- package util
- import (
- "crypto/tls"
- "github.com/gogf/gf/os/glog"
- "io/ioutil"
- "net"
- "golang.org/x/net/http2"
- )
- //GetTLSConfig 用于处理从证书凭证文件(PEM),最终获取tls.Config作为HTTP2的使用参数
- func GetTLSConfig(certPemPath, certKeyPath string) *tls.Config {
- var certKeyPair *tls.Certificate
- cert, _ := ioutil.ReadFile(certPemPath)
- key, _ := ioutil.ReadFile(certKeyPath)
- //从一对PEM编码的数据中解析公钥/私钥对。成功则返回公钥/私钥对
- pair, err := tls.X509KeyPair(cert, key)
- if err != nil {
- glog.Error("TLS KeyPair err", err)
- }
- certKeyPair = &pair
- return &tls.Config{
- Certificates: []tls.Certificate{*certKeyPair},
- NextProtos: []string{http2.NextProtoTLS},
- }
- }
- func NewTLSListener(inner net.Listener, config *tls.Config) net.Listener {
- return tls.NewListener(inner, config)
- }
|