dubbo-go-pixiu
dubbo-go-pixiu copied to clipboard
gRPC do support certificates?
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)
}
=== 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)