grpc

 

 

https://blog.csdn.net/weixin_34365417/article/details/88714357

  • c, err := credentials.NewServerTLSFromFile("../../conf/server.pem", "../../conf/server.key")
  • if err != nil {
  • log.Fatalf("credentials.NewServerTLSFromFile err: %v", err)
  • }
  •  
  • server := grpc.NewServer(grpc.Creds(c))
  • pb.RegisterSearchServiceServer(server, &SearchService{})

 

 

server:

  • func main() {
  • c, err := credentials.NewClientTLSFromFile("../../conf/server.pem", "go-grpc-example")
  • if err != nil {
  • log.Fatalf("credentials.NewClientTLSFromFile err: %v", err)
  • }
  •  
  • conn, err := grpc.Dial(":"+PORT, grpc.WithTransportCredentials(c))
  • if err != nil {
  • log.Fatalf("grpc.Dial err: %v", err)
  • }
  • defer conn.Close()
  •  
  • client := pb.NewSearchServiceClient(conn)
  • resp, err := client.Search(context.Background(), &pb.SearchRequest{
  • Request: "gRPC",
  • })
  • if err != nil {
  • log.Fatalf("client.Search err: %v", err)
  • }
  •  
  • log.Printf("resp: %s", resp.GetResponse())
  • }

 

 

 

 

ca :

 

https://segmentfault.com/a/1190000016601810

 

 

server:

func main() {
    cert, err := tls.LoadX509KeyPair("../../conf/server/server.pem", "../../conf/server/server.key")
    if err != nil {
        log.Fatalf("tls.LoadX509KeyPair err: %v", err)
    }

    certPool := x509.NewCertPool()
    ca, err := ioutil.ReadFile("../../conf/ca.pem")
    if err != nil {
        log.Fatalf("ioutil.ReadFile err: %v", err)
    }

    if ok := certPool.AppendCertsFromPEM(ca); !ok {
        log.Fatalf("certPool.AppendCertsFromPEM err")
    }

    c := credentials.NewTLS(&tls.Config{
        Certificates: []tls.Certificate{cert},
        ClientAuth:   tls.RequireAndVerifyClientCert,
        ClientCAs:    certPool,
    })

    server := grpc.NewServer(grpc.Creds(c))
    pb.RegisterSearchServiceServer(server, &SearchService{})

    lis, err := net.Listen("tcp", ":"+PORT)
    if err != nil {
        log.Fatalf("net.Listen err: %v", err)
    }

    server.Serve(lis)
}




client:


func main() {
    cert, err := tls.LoadX509KeyPair("../../conf/client/client.pem", "../../conf/client/client.key")
    if err != nil {
        log.Fatalf("tls.LoadX509KeyPair err: %v", err)
    }

    certPool := x509.NewCertPool()
    ca, err := ioutil.ReadFile("../../conf/ca.pem")
    if err != nil {
        log.Fatalf("ioutil.ReadFile err: %v", err)
    }

    if ok := certPool.AppendCertsFromPEM(ca); !ok {
        log.Fatalf("certPool.AppendCertsFromPEM err")
    }

    c := credentials.NewTLS(&tls.Config{
        Certificates: []tls.Certificate{cert},
        ServerName:   "go-grpc-example",
        RootCAs:      certPool,
    })

    conn, err := grpc.Dial(":"+PORT, grpc.WithTransportCredentials(c))
    if err != nil {
        log.Fatalf("grpc.Dial err: %v", err)
    }
    defer conn.Close()

    client := pb.NewSearchServiceClient(conn)
    resp, err := client.Search(context.Background(), &pb.SearchRequest{
        Request: "gRPC",
    })
    if err != nil {
        log.Fatalf("client.Search err: %v", err)
    }

    log.Printf("resp: %s", resp.GetResponse())
}
   c := credentials.NewTLS(&tls.Config{
        Certificates: []tls.Certificate{cert},
        ServerName:   "go-grpc-example",
        RootCAs:      certPool,
    })

    conn, err := grpc.Dial(":"+PORT, grpc.WithTransportCredentials(c))


posted @ 2020-05-26 16:58  zJanly  阅读(148)  评论(0)    收藏  举报