The code you have on server side looks correct to me(I have pretty much the 
same code).

Have you loaded the root cert for the server on the client (the CA that 
issued the cert to the server)? On client side, code could look like:

                std::string rootCerts;
                readSSLFile("cacert.pem", rootCerts);

                grpc::SslCredentialsOptions sslOps;
                sslOps.pem_root_certs = rootCerts;

                GrpcClient 
grpceClient(grpc::CreateChannel(ENDPOINT_1_EXTERNAL_SECURE, 
grpc::SslCredentials(sslOps)));

There are some details at  https://github.com/grpc/grpc/issues/9593  

HTH.



On Sunday, April 22, 2018 at 8:43:48 AM UTC-7, Todd Defilippi wrote:
>
> I am trying to get TLS authentication working for a C++ server 
> implementation I am working on.
>
> The relevant code is:
>
>         grpc::SslServerCredentialsOptions::PemKeyCertPair keyCert
>             = { tlsKeyContents_, tlsCertContents_ };
>         grpc::SslServerCredentialsOptions sslOps;
>         sslOps.pem_root_certs = "";
>         sslOps.pem_key_cert_pairs.push_back(keyCert);
>         builder_->AddListeningPort(addr, 
> grpc::SslServerCredentials(sslOps));
>
> where tlsKeyContents_ and tlsCertContents_ are the server key and 
> certifiticate, respectively.
>
> I seem to be unable to get the TLS handshake to work.  When I enable gRPC 
> logging, I see:
>
> D0421 17:22:09.629340909   24866 tcp_posix.c:531]            write: 
> {"created":"@1524356529.629325854","description":"OS 
> Error","errno":32,"file":"src/core/lib/iomgr/tcp_posix.c","file_line":424,"grpc_status":14,"os_error":"Broken
>  
> pipe","syscall":"sendmsg"}
> D0421 17:22:09.629435059   24866 security_handshaker.c:126]  Security 
> handshake failed: 
> {"created":"@1524356529.629415453","description":"Handshake write 
> failed","file":"src/core/lib/security/transport/security_handshaker.c","file_line":346,"referenced_errors":[{"created":"@1524356529.629325854","description":"OS
>  
> Error","errno":32,"file":"src/core/lib/iomgr/tcp_posix.c","file_line":424,"grpc_status":14,"os_error":"Broken
>  
> pipe","syscall":"sendmsg"}]}
> D0421 17:22:09.629455934   24866 lockfree_event.c:167]       
> lfev_set_shutdown: 0x7fa0911b1648 curr=(nil) 
> err={"created":"@1524356529.629415453","description":"Handshake write 
> failed","file":"src/core/lib/security/transport/security_handshaker.c","file_line":346,"referenced_errors":[{"created":"@1524356529.629325854","description":"OS
>  
> Error","errno":32,"file":"src/core/lib/iomgr/tcp_posix.c","file_line":424,"grpc_status":14,"os_error":"Broken
>  
> pipe","syscall":"sendmsg"}]}
> D0421 17:22:09.629474573   24866 lockfree_event.c:167]       
> lfev_set_shutdown: 0x7fa0911b1650 curr=0x2 
> err={"created":"@1524356529.629415453","description":"Handshake write 
> failed","file":"src/core/lib/security/transport/security_handshaker.c","file_line":346,"referenced_errors":[{"created":"@1524356529.629325854","description":"OS
>  
> Error","errno":32,"file":"src/core/lib/iomgr/tcp_posix.c","file_line":424,"grpc_status":14,"os_error":"Broken
>  
> pipe","syscall":"sendmsg"}]}
> D0421 17:22:09.629490837   24866 combiner.c:218]             
> C:0x7fa09105ec60 grpc_combiner_execute c=0x7fa091231c90 cov=0 last=1
> D0421 17:22:09.629500108   24866 timer_generic.c:322]        TIMER 
> 0x7fa091054980: CANCEL pending=true
> D0421 17:22:09.629506399   24866 chttp2_server.c:83]         Handshaking 
> failed: {"created":"@1524356529.629415453","description":"Handshake write 
> failed","file":"src/core/lib/security/transport/security_handshaker.c","file_line":346,"referenced_errors":[{"created":"@1524356529.629325854","description":"OS
>  
> Error","errno":32,"file":"src/core/lib/iomgr/tcp_posix.c","file_line":424,"grpc_status":14,"os_error":"Broken
>  
> pipe","syscall":"sendmsg"}]}
>
> Is there something I am missing?  (Please let me know if any other 
> relevant logging/output I should include.)
>
> Thanks,
> Todd
>

-- 
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/b99ca5f7-06a6-412b-ba64-e07d65cb16fd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to