Я ничего не знаю о SSL/TLS и пытаюсь использовать канал SSL/TLS в gRPC, следуя инструкциям, найденным в Интернете. Вот код сервера:Использовать SSL в связи с сервером gRPC
std::string server_address("0.0.0.0:50051");
GreeterServiceImpl service;
grpc::SslServerCredentialsOptions::PemKeyCertPair pkcp ={"a","b"};
grpc::SslServerCredentialsOptions ssl_opts;
ssl_opts.pem_root_certs="";
ssl_opts.pem_key_cert_pairs.push_back(pkcp);
std::shared_ptr<grpc::ServerCredentials> creds;
creds = grpc::SslServerCredentials(ssl_opts);
ServerBuilder builder;
builder.AddListeningPort(server_address, creds);
builder.RegisterService(&service);
std::unique_ptr<Server> server(builder.BuildAndStart());
Сервер не запускается и завершается со следующей ошибкой.
E1115 13:00:55.657846941 17129 ssl_transport_security.c:636] Invalid cert chain file.
E1115 13:00:55.657936436 17129 security_connector.c:830] Handshaker factory creation failed with TSI_INVALID_ARGUMENT.
E1115 13:00:55.657954952 17129 server_secure_chttp2.c:344] {"created":"@1479243655.657946821","description":"Unable to create secure server with credentials of type Ssl.","file":"src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c","file_line":242,"security_status":1}
Server listening on 0.0.0.0:50051
Segmentation fault (core dumped)
Все, что я хочу сделать, это просто использовать SSL для связи с сервером и клиентом. Похоже, я пропускаю надлежащие сертификаты на сервере и считаю, что подобные вещи нужны клиенту. Поскольку у меня нет никакого фона в SSL, было бы здорово, если бы кто-нибудь мог указать мне примеры того, как создавать эти сертификаты и правильно использовать для связи gRPC.