I added the certificate and key to server and it starts now. I generated 
some certificates and keys using a script mentioned in one of the posts in 
this group. Now after using server.crt and server.key generated by that 
script the server is running. However, what certificate and key should be 
added to the client to communicate with the server? Here is my client 
program. I am using client.crt and client.key generated by that script.

  std::ifstream tfile("client.crt");
  std::stringstream cli_cert;
  cli_cert << tfile.rdbuf();
  tfile.close();

  tfile.open("client.key");
  std::stringstream cli_key;
  cli_key << tfile.rdbuf();
  tfile.close();

  grpc::SslCredentialsOptions ssl_opts;
  ssl_opts.pem_root_certs="";
  ssl_opts.pem_private_key=cli_key.str();
  ssl_opts.pem_cert_chain=cli_cert.str();

  GreeterClient greeter(grpc::CreateChannel(
      "localhost:50051", grpc::SslCredentials(ssl_opts)));
  std::string user("world");
  std::string reply = greeter.SayHello(user);

Here is the error that I get on client side when the client is executed.

E1116 09:26:59.622489462   17976 ssl_transport_security.c:199] 
ssl_info_callback: error occured.

E1116 09:26:59.622623322   17976 ssl_transport_security.c:945] Handshake 
failed with fatal error SSL_ERROR_SSL: error:1000007d:SSL 
routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED.
E1116 09:26:59.622641277   17976 handshake.c:128]            Security 
handshake failed: 
{"created":"@1479317219.622630904","description":"Handshake 
failed","file":"src/core/lib/security/transport/handshake.c","file_line":264,"tsi_code":10,"tsi_error":"TSI_PROTOCOL_FAILURE"}

The error on server side is:

E1116 09:18:28.809683734   17911 server_secure_chttp2.c:123] Secure 
transport failed with error 1
E1116 09:26:59.606240723   17911 ssl_transport_security.c:1288] No match 
found for server name: 0.0.0.0.
E1116 09:26:59.622738415   17911 handshake.c:128]            Security 
handshake failed: 
{"created":"@1479317219.622724267","description":"Handshake read 
failed","file":"src/core/lib/security/transport/handshake.c","file_line":237,"referenced_errors":[{"created":"@1479317219.622722928","description":"EOF","file":"src/core/lib/iomgr/tcp_posix.c","file_line":235}]}
E1116 09:26:59.622827154   17911 server_secure_chttp2.c:123] Secure 
transport failed with error 1

I am guessing something is wrong with the server name ?

On Tuesday, November 15, 2016 at 11:07:19 PM UTC-8, Christian Svensson 
wrote:
>
> Did you pass a real certificate and private key to PemKeyCertPair? If you 
> used "a", "b" that's your problem.
>
> On Nov 16, 2016 03:47, "AK" <[email protected] <javascript:>> wrote:
>
>> I know nothing about SSL/TLS and am trying to use SSL/TLS channel in gRPC 
>> by following instructions found online.
>> Here is the server code:
>>
>>   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());
>>
>> The server won't start and terminates with following error.
>>
>> 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)
>>
>> Any help would be appreciated.
>>
>> -- 
>> 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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> 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/e8597c77-c857-4b00-ae7e-2cb207df857f%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/grpc-io/e8597c77-c857-4b00-ae7e-2cb207df857f%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
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/8d755a1f-49c6-4f13-bca2-e474a9950323%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to