代码拉取完成,页面将自动刷新
package tls
import (
"crypto/tls"
"crypto/x509"
"errors"
"io/ioutil"
"google.golang.org/grpc/credentials"
)
type Server struct {
CaFile string
CertFile string
KeyFile string
}
func (t *Server) GetCredentialsByCA() (credentials.TransportCredentials, error) {
cert, err := tls.LoadX509KeyPair(t.CertFile, t.KeyFile)
if err != nil {
return nil, err
}
certPool := x509.NewCertPool()
ca, err := ioutil.ReadFile(t.CaFile)
if err != nil {
return nil, err
}
if ok := certPool.AppendCertsFromPEM(ca); !ok {
return nil, errors.New("certPool.AppendCertsFromPEM err")
}
c := credentials.NewTLS(&tls.Config{
Certificates: []tls.Certificate{cert},
ClientAuth: tls.RequireAndVerifyClientCert,
ClientCAs: certPool,
})
return c, err
}
func (t *Server) GetTLSCredentials() (credentials.TransportCredentials, error) {
c, err := credentials.NewServerTLSFromFile(t.CertFile, t.KeyFile)
if err != nil {
return nil, err
}
return c, err
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。