dubbo-go-pixiu icon indicating copy to clipboard operation
dubbo-go-pixiu copied to clipboard

gRPC do support certificates?

Open baerwang opened this issue 2 years ago • 1 comments

i use openssl cerate certificates ,test example error authentication handshake failed

func main() {
	l, err := net.Listen("tcp", ":50001") //nolint:gosec
	if err != nil {
		panic(err)
	}

	s := &server{users: make(map[int32]*proto.User)}
	initUsers(s)

	creds, err := credentials.NewServerTLSFromFile("server.pem", "server.key")
	if err != nil {
		panic(err)
	}

	gs := grpc.NewServer(grpc.Creds(creds))

	proto.RegisterUserProviderServer(gs, s)
	logger.Info("grpc test server is now running...")
	err = gs.Serve(l)
	if err != nil {
		panic(err)
	}
}
var (
	addr = flag.String("addr", "localhost:8881", "the address to connect to")
)

func TestGet(t *testing.T) {
	flag.Parse()

	certs, err := credentials.NewClientTLSFromFile("server.pem", "192.168.1.6")
	if err != nil {
		t.Fatal(err)
	}

	// Set up a connection to the server.
	conn, err := grpc.Dial(*addr, grpc.WithTransportCredentials(certs))
	if err != nil {
		log.Fatalf("did not connect: %v", err)
	}
	defer conn.Close()
	c := pb.NewUserProviderClient(conn)

	// Contact the server and print out its response.
	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
	defer cancel()
	r, err := c.GetUser(ctx, &pb.GetUserRequest{UserId: 1})
	assert.NoError(t, err)
	assert.Equal(t, "user(s) query successfully", r.Message)
}

baerwang avatar Feb 27 '22 11:02 baerwang

=== RUN   TestGet
    pixiu_test.go:81: 
        	Error Trace:	pixiu_test.go:81
        	Error:      	Received unexpected error:
        	            	rpc error: code = Unavailable desc = connection error: desc = "transport: authentication handshake failed: tls: first record does not look like a TLS handshake"
        	Test:       	TestGet2
--- FAIL: TestGet (0.01s)

baerwang avatar Feb 27 '22 12:02 baerwang