prefer nodejs flexibility of programming without compilation of code,
need to talk to a GRPC Server written in Go, met some problems with
this createSsl call,
https://grpc.io/grpc/node/grpc.credentials.html#.createSsl__anchor

with grpcurl I can debug with the GRPC Server (written in Go), using
these cacert, cert, key, and insecure the grpcurl is able to talk with
this GRPC Server written in Go, but with nodejs grpc.credentials
either createSsl or createInsecure call it's confused, always saying
bad cert,

I am thinking
1) if anyone seen a Nodejs version of GRPCurl, I may learn some code from there,
https://github.com/fullstorydev/grpcurl

2) what's the terminology mapping?  between Go code uses
cacert/cert/key  to the Nodejs uses  root_cert, private_key,
cert_chain ?

  <static> createSsl( [root_certs] [, private_key] [, cert_chain])
Create an SSL Credentials object. If using a client-side certificate,
both the second and third arguments must be passed. Additional peer
verification options can be passed in the fourth argument as described
below.

Parameters:
Name Type Argument Description
root_certs Buffer <optional>
The root certificate data

private_key Buffer <optional>
The client certificate private key, if applicable

cert_chain Buffer <optional>
The client certificate cert chain, if applicable

verify_options.checkServerIdentity function
Optional callback receiving the expected hostname and peer certificate
for additional verification. The callback should return an Error if
verification fails and otherwise return undefined.

3) the nodejs code is calling npm package `@grpc/proto-loader` to load
*.proto but GRPCurl support protoset binary version of protobuf
definition as plaintext *.proto as well, wonder if Nodejs GRPC has
similar binary protoset support?
https://github.com/grpc/grpc/blob/v1.15.0/examples/node/dynamic_codegen/route_guide/route_guide_client.js

$ grpcurl --help

  -cacert string
        File containing trusted root certificates for verifying the server.
                Ignored if -insecure is specified.
  -cert string
        File containing client certificate (public key), to present to the
                server. Not valid with -plaintext option. Must also
provide -key option.
  -key string
        File containing client private key, to present to the server. Not valid
                with -plaintext option. Must also provide -cert option.
  -insecure
        Skip server certificate and domain verification. (NOT SECURE!). Not
                valid with -plaintext option.

  -protoset value
        The name of a file containing an encoded FileDescriptorSet. This file's
                contents will be used to determine the RPC schema
instead of querying
                for it from the remote server via the GRPC reflection
API. When set: the
                'list' action lists the services found in the given
descriptors (vs.
                those exposed by the remote server), and the
'describe' action describes
                symbols found in the given descriptors. May specify
more than one via
                multiple -protoset flags. It is an error to use both
-protoset and
                -proto flags.

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAJctwx4kO-fxRGRNjap%3D23vCmvfqO5DBF25G8qKhbfRjbQHjZQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to