J'utilise GRPC 1.35.0 sous Windows 10 et suivant un exemple de code ici pour créer un canal GRPC pour le client à utiliser. Mais j'ai un certificat de racine pour créer le canal, sinon elle se plaint en dessous de l'erreur. Entrez la description de l'image ici

Ensuite, j'écris mon client dans une version Python et je peux créer le canal sans donner le cert root.

Alors, est-ce un bug de GRPC ou j'ai mal compris le code d'échantillon?

Code exemple de GRPC

// Create a default SSL ChannelCredentials object.
auto channel_creds = grpc::SslCredentials(grpc::SslCredentialsOptions());
// Create a channel using the credentials created in the previous step.
auto channel = grpc::CreateChannel(server_name, channel_creds);
// Create a stub on the channel.
std::unique_ptr<Greeter::Stub> stub(Greeter::NewStub(channel));
// Make actual RPC calls on the stub.
grpc::Status s = stub->sayHello(&context, *request, response);

Mon code

const std::string SECURE_GRPC_CHANNEL_ADDRESS = <MY_SERVER>;

class GrpcChannel
{
    GrpcChannel()
    {
        auto ca_cert = get_file_contents(cacert_path);
        SslCredentialsOptions options = { ca_cert, "", "" };
        auto channel_creds = SslCredentials(options);
        channel_ = grpc::CreateChannel(SECURE_GRPC_CHANNEL_ADDRESS, channel_creds);            
    }
1
Keannylen 28 avril 2021 à 09:39

1 réponse

Meilleure réponse

Il s'agit d'un problème de document GRPC, GRPC-CORE C ++ pour Windows ne prend pas en charge le certificat racine par défaut et nécessite spécifier un par utilisateur. Veuillez vous reporter à ici.

0
Keannylen 5 mai 2021 à 00:15