From e297c95ca370bfc8db61ebcd9c9279ec9a12e1e5 Mon Sep 17 00:00:00 2001 From: chai2010 Date: Sat, 14 Jul 2018 13:08:57 +0800 Subject: [PATCH] =?UTF-8?q?vendor:=20=E8=B0=83=E6=95=B4grpc=E4=BE=8B?= =?UTF-8?q?=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ch4-05-grpc-hack/tls/main.go | 52 +++++++------------ .../tls/{ => tls-config}/ca.cer | 0 .../tls/{ => tls-config}/ca.csr | 0 .../tls/{ => tls-config}/ca.key | 0 .../tls/{ => tls-config}/client.cer | 0 .../tls/{ => tls-config}/client.csr | 0 .../tls/{ => tls-config}/client.key | 0 .../tls/{ => tls-config}/client_pri.key | 0 .../tls/{ => tls-config}/server.cer | 0 .../tls/{ => tls-config}/server.csr | 0 .../tls/{ => tls-config}/server.key | 0 .../tls/{ => tls-config}/server_pri.key | 0 12 files changed, 19 insertions(+), 33 deletions(-) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/ca.cer (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/ca.csr (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/ca.key (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/client.cer (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/client.csr (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/client.key (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/client_pri.key (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/server.cer (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/server.csr (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/server.key (100%) rename vendor/gobook.examples/ch4-05-grpc-hack/tls/{ => tls-config}/server_pri.key (100%) diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/main.go b/vendor/gobook.examples/ch4-05-grpc-hack/tls/main.go index 357da42..445f5cd 100644 --- a/vendor/gobook.examples/ch4-05-grpc-hack/tls/main.go +++ b/vendor/gobook.examples/ch4-05-grpc-hack/tls/main.go @@ -12,22 +12,24 @@ import ( "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials" - "google.golang.org/grpc/reflection" ) var ( port = ":5000" - ca = "./ca.cer" - server_crt = "./server.cer" - server_key = "./server_pri.key" - client_crt = "./client.cer" - client_key = "./client_pri.key" + tlsDir = "./tls-config" + tlsServerName = "server" + + ca = tlsDir + "/ca.cer" + server_crt = tlsDir + "/server.cer" + server_key = tlsDir + "/server_pri.key" + client_crt = tlsDir + "/client.cer" + client_key = tlsDir + "/client_pri.key" ) -type server struct{} +type myGrpcServer struct{} -func (s *server) SayHello(ctx context.Context, in *HelloRequest) (*HelloReply, error) { +func (s *myGrpcServer) SayHello(ctx context.Context, in *HelloRequest) (*HelloReply, error) { return &HelloReply{Message: "Hello " + in.Name}, nil } @@ -39,13 +41,11 @@ func main() { } func startServer() { - // Load the certificates from disk certificate, err := tls.LoadX509KeyPair(server_crt, server_key) if err != nil { log.Panicf("could not load server key pair: %s", err) } - // Create a certificate pool from the certificate authority certPool := x509.NewCertPool() ca, err := ioutil.ReadFile(ca) if err != nil { @@ -57,12 +57,6 @@ func startServer() { log.Panic("failed to append client certs") } - // Create the channel to listen on - lis, err := net.Listen("tcp", port) - if err != nil { - log.Panicf("could not list on %s: %s", port, err) - } - // Create the TLS credentials creds := credentials.NewTLS(&tls.Config{ ClientAuth: tls.RequireAndVerifyClientCert, @@ -70,21 +64,16 @@ func startServer() { ClientCAs: certPool, }) - // Create the gRPC server with the credentials - s := grpc.NewServer(grpc.Creds(creds)) + server := grpc.NewServer(grpc.Creds(creds)) + RegisterGreeterServer(server, new(myGrpcServer)) - // Register the handler object - RegisterGreeterServer(s, &server{}) - - // Serve and Listen - if err := s.Serve(lis); err != nil { - log.Panicf("grpc serve error: %s", err) + lis, err := net.Listen("tcp", port) + if err != nil { + log.Panicf("could not list on %s: %s", port, err) } - // Register reflection service on gRPC server. - reflection.Register(s) - if err := s.Serve(lis); err != nil { - log.Fatalf("failed to serve: %v", err) + if err := server.Serve(lis); err != nil { + log.Panicf("grpc serve error: %s", err) } } @@ -94,25 +83,21 @@ func doClientWork() { log.Panicf("could not load client key pair: %s", err) } - // Create a certificate pool from the certificate authority certPool := x509.NewCertPool() ca, err := ioutil.ReadFile(ca) if err != nil { log.Panicf("could not read ca certificate: %s", err) } - - // Append the certificates from the CA if ok := certPool.AppendCertsFromPEM(ca); !ok { log.Panic("failed to append ca certs") } creds := credentials.NewTLS(&tls.Config{ - ServerName: "server", // NOTE: this is required! + ServerName: tlsServerName, // NOTE: this is required! Certificates: []tls.Certificate{certificate}, RootCAs: certPool, }) - // Create a connection with the TLS credentials conn, err := grpc.Dial("localhost"+port, grpc.WithTransportCredentials(creds)) if err != nil { log.Fatal(err) @@ -120,6 +105,7 @@ func doClientWork() { defer conn.Close() c := NewGreeterClient(conn) + r, err := c.SayHello(context.Background(), &HelloRequest{Name: "gopher"}) if err != nil { log.Fatalf("could not greet: %v", err) diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/ca.cer b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/ca.cer similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/ca.cer rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/ca.cer diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/ca.csr b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/ca.csr similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/ca.csr rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/ca.csr diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/ca.key b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/ca.key similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/ca.key rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/ca.key diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/client.cer b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/client.cer similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/client.cer rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/client.cer diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/client.csr b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/client.csr similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/client.csr rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/client.csr diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/client.key b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/client.key similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/client.key rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/client.key diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/client_pri.key b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/client_pri.key similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/client_pri.key rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/client_pri.key diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/server.cer b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/server.cer similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/server.cer rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/server.cer diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/server.csr b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/server.csr similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/server.csr rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/server.csr diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/server.key b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/server.key similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/server.key rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/server.key diff --git a/vendor/gobook.examples/ch4-05-grpc-hack/tls/server_pri.key b/vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/server_pri.key similarity index 100% rename from vendor/gobook.examples/ch4-05-grpc-hack/tls/server_pri.key rename to vendor/gobook.examples/ch4-05-grpc-hack/tls/tls-config/server_pri.key