【问题标题】:GRPC CreateChannel() error Could not get default pem root certsGRPC CreateChannel() 错误无法获取默认 pem 根证书
【发布时间】:2021-07-21 11:59:51
【问题描述】:

我在 Windows 10 上使用 grpc 1.35.0 并按照示例代码 here 创建供客户端使用的 grpc 通道。但是我提供了一个根证书来创建频道,否则它会抱怨以下错误。

然后我用 python 版本编写我的客户端,我可以在不提供根证书的情况下创建通道。

那么,这是一个 grpc 错误还是我误解了示例代码?

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);

我的代码

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);            
    }

【问题讨论】:

    标签: c++ ssl grpc grpc-python


    【解决方案1】:

    原来是 grpc 文档问题,grpc-core C++ for windows 不支持默认根证书,需要用户指定。请参考here

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-20
    • 2018-11-24
    • 2021-10-04
    • 2018-10-03
    • 2021-09-27
    • 2015-03-18
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多