I'm having some trouble with connecting to my gRPC service using a secure SSL/TLS connection. Even though the RPC succeeds, server outputs these two lines:
-----BEGIN CERTIFICATE-----
MIIFwjCCA6oCAQEwDQYJKoZIhvcNAQEFBQAwgaYxCzAJBgNVBAYTAlNJMQ8wDQYD
VQQIEwZTdHlyaWExEDAOBgNVBAcTB01hcmlib3IxITAfBgNVBAoTGFJldmVlbCBU
ZWNobm9sb2dpZXMgSW5jLjEUMBIGA1UECxMLUmVjb2duaXRpb24xGjAYBgNVBAMT
EUtsZW1lbiBGb3JzdG5lcmljMR8wHQYJKoZIhvcNAQkBFhBrbGVtZW5AcmV2ZWVs
Lml0MB4XDTE2MTEyODExMDkwNloXDTE3MTEyODExMDkwNlowgaYxCzAJBgNVBAYT
AlNJMQ8wDQYDVQQIEwZTdHlyaWExEDAOBgNVBAcTB01hcmlib3IxITAfBgNVBAoT
GFJldmVlbCBUZWNobm9sb2dpZXMgSW5jLjEUMBIGA1UECxMLUmVjb2duaXRpb24x
GjAYBgNVBAMTEUtsZW1lbiBGb3JzdG5lcmljMR8wHQYJKoZIhvcNAQkBFhBrbGVt
ZW5AcmV2ZWVsLml0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0Mpq
qp0AugHZ/oPCXlo24dmvZf90VjTPh+IuE/p8wkocKyP5Qs5+YHF187p8FLlVjzPw
VWO3hqQ6qrFIEAobtfRdvE4PrdCnDrTdgKBhioE+umZs1Yf3Gt+/fo2IsAzZdoN5
LSYPNxcp0XCztVbPtp0qOA6C5vnurTrWNvIOPzSjl+zLtIn/xKvMXU3Ozex0l2z8
G+6102A2L/O2KMd7t+bgEj/rVYX4vl+YKbPhM3bJr6d0oAVhS28923wNjrXJIrRL
/aa6D6q760auxFxvhWimBX/bh5F0JXnnKcRsPqu0QWLiEAFCZf+U7MzAdHoyPFWM
+s1ETMasBqc2rjRA8kJh1hm3s9pNIh8od5Y6d6tyxY+7kToXAhcquJZ4o8BlyYt2
tOl0gZdYLTppNTiy3LNRPODx0XrOftIndJpe4qx2e2yNvqSlfk9l9P8ftikIigEP
ip74oXIegKu48uZIz8wEZbcCEeBpDmLyRrWzfo9yj+sd6Fk9HiKZYW6SkRgVaEvN
ZkRp5KU8LoDv1EVo8leeGKc5KrR7/pl7Weiz9Ep6w2+S3g+LPW34AhR5dK/1+C3Z
S5DYzLX1V3iLfbSOkl1hzZ+DeZqfF2gwlEZhnKcmwPANGUhQJu9MFtJZfnfrWJtf
rqMoRpfKGqX0g10j//qBm1gD8G4pj2CL57c4Z/8CAwEAATANBgkqhkiG9w0BAQUF
AAOCAgEANiqku5KDx/01EHcW3x98ZUWCBFIk6IHm/e40Nr2JQkxeRr6cys/zAGC8
w4FtGQxUiSZ5akuf0ArTB24oRLz73PYniwLUapIlbFfWIuPG2QPVvVNy9+8Uuf0l
TyWWXj44NM5Y/vdqmhl0rAExmFtuZ2oNQN6acT6QEw3Lb5lyeEj3W+bGeKWmF5/i
O1HjlsKOuT5JftcuXFRHR8ymHC5a5aIfXNEmBbq0CBo2vAjSIPmw3WBJXJbxexsO
EidSaOL992Vm3EiTDYdcm30Wa+RFbXOXoARFVci2Q08bIejnFF6koQ+FIETZvMhD
VYhO+bOMcJfw3sr5Bl80r+vA/hya5UBU7kheBwPN6dQqT03rKakAj7BMJKhjYtBi
2nWP8BJIm6q4WBaLWGvnGt13j7k50CjosiSBjdztW0gp3tpPDPchgMuB8qkb9evp
/lawnIqY+J5w8ZaYLf2Q+R+rcOD9d2R7rSYH4iN+8TOWH5FztkNwq3CNmH99pt6L
CZ6tPmj55ZovDNW+tYe2hRAIqG/BcfRZU0nyS8N2BvAVTe6m6m9kozWFzha2qJgR
WHuVV9m5/NdhM/0Uk+J61zomtVEGZV6z/DRqWTnfwMYSNzr8Gh8neyo+eDc7Cz0H
BbvZ3szinCODQ9xpAnqWckmjvTLOxK6Up6ThDFwL4h+Y0PSk+sk=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIG4jCCBMqgAwIBAgIJAO28b/K13rq0MA0GCSqGSIb3DQEBBQUAMIGmMQswCQYD
VQQGEwJTSTEPMA0GA1UECBMGU3R5cmlhMRAwDgYDVQQHEwdNYXJpYm9yMSEwHwYD
VQQKExhSZXZlZWwgVGVjaG5vbG9naWVzIEluYy4xFDASBgNVBAsTC1JlY29nbml0
aW9uMRowGAYDVQQDExFLbGVtZW4gRm9yc3RuZXJpYzEfMB0GCSqGSIb3DQEJARYQ
a2xlbWVuQHJldmVlbC5pdDAeFw0xNjExMjgxMTA3MDBaFw0xNzExMjgxMTA3MDBa
MIGmMQswCQYDVQQGEwJTSTEPMA0GA1UECBMGU3R5cmlhMRAwDgYDVQQHEwdNYXJp
Ym9yMSEwHwYDVQQKExhSZXZlZWwgVGVjaG5vbG9naWVzIEluYy4xFDASBgNVBAsT
C1JlY29nbml0aW9uMRowGAYDVQQDExFLbGVtZW4gRm9yc3RuZXJpYzEfMB0GCSqG
SIb3DQEJARYQa2xlbWVuQHJldmVlbC5pdDCCAiIwDQYJKoZIhvcNAQEBBQADggIP
ADCCAgoCggIBANZGJpaF2J1fAJOwDyDnZy22ffr1DZOpcmwj6xVVk4aaDexWpZFB
4Q4zFDCKYvTnIkx4JzUaWBHqDjryOihB5IQDZr7y8/tp0G8njBeyhjth0+8B+UjF
YGLQ88pcRW1NJ6cTwN5IyY9rDQcFlXON5Z9b9cax9RNQ/tFcvUQOaa96n5ip0PA2
lmqNnFz7izpVsphuzO5lb+pG/T98SpMgXsj3sc/zDypkz1jy/22VIcAZTS+IK1iz
jamOo33VjLR+htKefymQ6yD92+nyU6gMRK1yR09L6IdPETOaBRyydAFVmCnWRkt7
P05Rk60PldL5G3uL58Dh1tBdghziOaTU8RVpcByi53NvenRh5NLbqW+RFqSDL+ZF
YH6MdhGtntvfQtDmqVCS7aTF/OK0d+9LL7wIWmXNsO4hPkawfzypqviEFGuXHFI7
QYqPd3ho8T0UaNNeySZdj+iMXs7lyTNHsuTZIqVCUJQQHx+/1Nd26qtZ3c7iQ6Ln
GPBMtpauYiOw/c43MW8J5RHaelXGKkw0bK/PU9jWif+RQOwAs3DL/rBP6e8a3Fty
5bNJRF4Pc3oyISiDN778MMEKHjUD6n03vkNg/wOJYZcs/pbg60pJu8V8c9l20l75
3OSAue6nxKkBX+xdJK7majU78OCyojuWUvgOurvk84zyzpcoBkEE9xZzAgMBAAGj
ggEPMIIBCzAdBgNVHQ4EFgQUBtOaW4oAgkVm6CdgWKebBNQBxzwwgdsGA1UdIwSB
0zCB0IAUBtOaW4oAgkVm6CdgWKebBNQBxzyhgaykgakwgaYxCzAJBgNVBAYTAlNJ
MQ8wDQYDVQQIEwZTdHlyaWExEDAOBgNVBAcTB01hcmlib3IxITAfBgNVBAoTGFJl
dmVlbCBUZWNobm9sb2dpZXMgSW5jLjEUMBIGA1UECxMLUmVjb2duaXRpb24xGjAY
BgNVBAMTEUtsZW1lbiBGb3JzdG5lcmljMR8wHQYJKoZIhvcNAQkBFhBrbGVtZW5A
cmV2ZWVsLml0ggkA7bxv8rXeurQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUF
AAOCAgEAImQdKrM6XpFhQYRMPrUDS8uY4tSPpMvlvnZnQofU5etvKVURr8CgvDjn
AnHaMp+CX10AuFB637fN8bOwENmrIsQf/H4skfhWEtlqbAi10Uf+IsyNgcJeXaI4
qQQI5ETTkdckBLmwEa5R2C+GmQhVhwvEPReax6xMQJCGtmKXAfKiVZHM7z6+b1+a
8qOoM9jsVzwrOFo49GOGkjSYcgYL0ulLDaOdD16rvNRFzRBzhXA9K/wAB1Sx+eYZ
BZtDCrMMQIoKCt1kJyE8zU8W9U84D2YUKuDQu0B4afX7BKWl5IRrliUdKKWbGDbk
SfUXP8n1k5IjOGbRGoewRPfCeAHp78ja9xpLmq3Pr6AMXtwydpjuKNqkoYWcVg//
/SZX6PWug5Ftb40SoGNsTkjGE7/cV0i4BqZik086hEWm7SZloKrcX9F+CAl9yl56
wcnIZ8eDGeZIw5Wfd3jw2KLJ+HktZUETojg2yglRB8cShs7uBcX2uLL8U5joRUxb
Xyer2UtM8nZQUdhAubdGYPgzt4teIat8l/VME00/pF4OubAPc+CbwJB1FbrGRIub
GZrnE2ch1fpGDyEhCzkY8LOi8OII8iKAk+I7ISQ69E6vffS2eYTS99emDEXbafbI
h9BZyiBYb5NKVRdGu/EcOLM2q8Jf48eSYEg4qVe2U0ymnrgbQBk=
-----END CERTIFICATE-----
#include <grpc++/grpc++.h>
#include <rvl.grpc.pb.h>
namespace {
constexpr char kCaCert[] =
R"(-----BEGIN CERTIFICATE-----
MIIG4jCCBMqgAwIBAgIJAO28b/K13rq0MA0GCSqGSIb3DQEBBQUAMIGmMQswCQYD
VQQGEwJTSTEPMA0GA1UECBMGU3R5cmlhMRAwDgYDVQQHEwdNYXJpYm9yMSEwHwYD
VQQKExhSZXZlZWwgVGVjaG5vbG9naWVzIEluYy4xFDASBgNVBAsTC1JlY29nbml0
aW9uMRowGAYDVQQDExFLbGVtZW4gRm9yc3RuZXJpYzEfMB0GCSqGSIb3DQEJARYQ
a2xlbWVuQHJldmVlbC5pdDAeFw0xNjExMjgxMTA3MDBaFw0xNzExMjgxMTA3MDBa
MIGmMQswCQYDVQQGEwJTSTEPMA0GA1UECBMGU3R5cmlhMRAwDgYDVQQHEwdNYXJp
Ym9yMSEwHwYDVQQKExhSZXZlZWwgVGVjaG5vbG9naWVzIEluYy4xFDASBgNVBAsT
C1JlY29nbml0aW9uMRowGAYDVQQDExFLbGVtZW4gRm9yc3RuZXJpYzEfMB0GCSqG
SIb3DQEJARYQa2xlbWVuQHJldmVlbC5pdDCCAiIwDQYJKoZIhvcNAQEBBQADggIP
ADCCAgoCggIBANZGJpaF2J1fAJOwDyDnZy22ffr1DZOpcmwj6xVVk4aaDexWpZFB
4Q4zFDCKYvTnIkx4JzUaWBHqDjryOihB5IQDZr7y8/tp0G8njBeyhjth0+8B+UjF
YGLQ88pcRW1NJ6cTwN5IyY9rDQcFlXON5Z9b9cax9RNQ/tFcvUQOaa96n5ip0PA2
lmqNnFz7izpVsphuzO5lb+pG/T98SpMgXsj3sc/zDypkz1jy/22VIcAZTS+IK1iz
jamOo33VjLR+htKefymQ6yD92+nyU6gMRK1yR09L6IdPETOaBRyydAFVmCnWRkt7
P05Rk60PldL5G3uL58Dh1tBdghziOaTU8RVpcByi53NvenRh5NLbqW+RFqSDL+ZF
YH6MdhGtntvfQtDmqVCS7aTF/OK0d+9LL7wIWmXNsO4hPkawfzypqviEFGuXHFI7
QYqPd3ho8T0UaNNeySZdj+iMXs7lyTNHsuTZIqVCUJQQHx+/1Nd26qtZ3c7iQ6Ln
GPBMtpauYiOw/c43MW8J5RHaelXGKkw0bK/PU9jWif+RQOwAs3DL/rBP6e8a3Fty
5bNJRF4Pc3oyISiDN778MMEKHjUD6n03vkNg/wOJYZcs/pbg60pJu8V8c9l20l75
3OSAue6nxKkBX+xdJK7majU78OCyojuWUvgOurvk84zyzpcoBkEE9xZzAgMBAAGj
ggEPMIIBCzAdBgNVHQ4EFgQUBtOaW4oAgkVm6CdgWKebBNQBxzwwgdsGA1UdIwSB
0zCB0IAUBtOaW4oAgkVm6CdgWKebBNQBxzyhgaykgakwgaYxCzAJBgNVBAYTAlNJ
MQ8wDQYDVQQIEwZTdHlyaWExEDAOBgNVBAcTB01hcmlib3IxITAfBgNVBAoTGFJl
dmVlbCBUZWNobm9sb2dpZXMgSW5jLjEUMBIGA1UECxMLUmVjb2duaXRpb24xGjAY
BgNVBAMTEUtsZW1lbiBGb3JzdG5lcmljMR8wHQYJKoZIhvcNAQkBFhBrbGVtZW5A
cmV2ZWVsLml0ggkA7bxv8rXeurQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUF
AAOCAgEAImQdKrM6XpFhQYRMPrUDS8uY4tSPpMvlvnZnQofU5etvKVURr8CgvDjn
AnHaMp+CX10AuFB637fN8bOwENmrIsQf/H4skfhWEtlqbAi10Uf+IsyNgcJeXaI4
qQQI5ETTkdckBLmwEa5R2C+GmQhVhwvEPReax6xMQJCGtmKXAfKiVZHM7z6+b1+a
8qOoM9jsVzwrOFo49GOGkjSYcgYL0ulLDaOdD16rvNRFzRBzhXA9K/wAB1Sx+eYZ
BZtDCrMMQIoKCt1kJyE8zU8W9U84D2YUKuDQu0B4afX7BKWl5IRrliUdKKWbGDbk
SfUXP8n1k5IjOGbRGoewRPfCeAHp78ja9xpLmq3Pr6AMXtwydpjuKNqkoYWcVg//
/SZX6PWug5Ftb40SoGNsTkjGE7/cV0i4BqZik086hEWm7SZloKrcX9F+CAl9yl56
wcnIZ8eDGeZIw5Wfd3jw2KLJ+HktZUETojg2yglRB8cShs7uBcX2uLL8U5joRUxb
Xyer2UtM8nZQUdhAubdGYPgzt4teIat8l/VME00/pF4OubAPc+CbwJB1FbrGRIub
GZrnE2ch1fpGDyEhCzkY8LOi8OII8iKAk+I7ISQ69E6vffS2eYTS99emDEXbafbI
h9BZyiBYb5NKVRdGu/EcOLM2q8Jf48eSYEg4qVe2U0ymnrgbQBk=
-----END CERTIFICATE-----)";
constexpr char kServerCert[] =
R"(-----BEGIN CERTIFICATE-----
MIIFwjCCA6oCAQEwDQYJKoZIhvcNAQEFBQAwgaYxCzAJBgNVBAYTAlNJMQ8wDQYD
VQQIEwZTdHlyaWExEDAOBgNVBAcTB01hcmlib3IxITAfBgNVBAoTGFJldmVlbCBU
ZWNobm9sb2dpZXMgSW5jLjEUMBIGA1UECxMLUmVjb2duaXRpb24xGjAYBgNVBAMT
EUtsZW1lbiBGb3JzdG5lcmljMR8wHQYJKoZIhvcNAQkBFhBrbGVtZW5AcmV2ZWVs
Lml0MB4XDTE2MTEyODExMDgwNFoXDTE3MTEyODExMDgwNFowgaYxCzAJBgNVBAYT
AlNJMQ8wDQYDVQQIEwZTdHlyaWExEDAOBgNVBAcTB01hcmlib3IxITAfBgNVBAoT
GFJldmVlbCBUZWNobm9sb2dpZXMgSW5jLjEUMBIGA1UECxMLUmVjb2duaXRpb24x
GjAYBgNVBAMTEUtsZW1lbiBGb3JzdG5lcmljMR8wHQYJKoZIhvcNAQkBFhBrbGVt
ZW5AcmV2ZWVsLml0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz4JD
yA42rqpYi8ho86ZCBexaUpN3ZIoATAdhgw9UYrXBQdChvM8ChMXP2lcrxVrrroX1
GR26/N5OPLM9v4+LaLgAKHVlj6y2xBjumvKRfeo2OpIlYUGPGfKf+Uu2oIdW9zDu
+PbyDDccL4aTA2skhh+7f9V8vZoPGJTFkKMOCZwEUUMhyD4firh8czXCWKxAFA4T
Ix9SBgMRxkbsW+xL5kS0Lyax2S5QYbhY+2ZEty9BCm44XPalm5TW2+nAtP2iCxr9
In4kKYpvcFmMzRaSq2jAezI8NbRYTD8/wrDc8ep0kRVH2QVdiEvcvNrlM461wpL3
+5xZbmUrPwp+kUVxA6t2fSd1HXtcwWr0xjiUXLqR55v9pIev9w4xVgTWSAP1X0TN
hD4i/GNLi6Iyqrj5EQ45Gpp8X7X4fbwSjeakFMXAlY6a+XUU+//v/cI0Fy6CcpBf
GIReg9d6Rsdqzvk3nYbCrFjXImcmnazn/zAjL9ekrWrYFh0ucr0Xc859L2O/2UWP
5JGA+kTg45+l8ysXn5B7nFPjfp3YyqtjgYGhU/FOvzALnVeIDrfW94T8XSl5G7w8
3bc43URQu63/pGFyoy8up92g+S7neS4XGamSWHFH/T8OTP27KSeb2NglhsRPYb1O
dfWS8hLlKzm0grTc7HxVaaMsZ/oKdpdhztLr3acCAwEAATANBgkqhkiG9w0BAQUF
AAOCAgEAC/6V2yJJ2SyavksPENdpv2tEBauHNuJm13G4VAwyDj0etFexg8j0gio2
h75k4HYuOhBM3hsOrmcNL8fNuSwkbpS7C+auVXwPLgOHnX9qcgwsdh8l8pLZSRde
WwjcwzRgkvZLTNHbUtP/w+6piK2U7XfmmyuQk5qxRCp6QiijUye7p5llxKUE/F7c
Gn/0FC0yaoCObpio30xRh4Fxq3DrAmaa5jKcWpsIj+FPUxt2s9CgXTWKCosNerXG
ErWnqWRYmnFlB9dEOhKuvYVNTxzUjuSE7gPtJL2/q88ZLpa1h8TKN//o8o+zGSpV
cLzZyQbSdi8U1nBszEeywck9tnkt+IlTZRi0efB34XX/av74Dp5vJhSprUUvWKZ3
dZC4yy8yoJMWUG7EjkGufD78AwQiTxFrHAQIt6HFwfKcUbQSndSeEIplEy5j8v4m
GL57+RyfGM82ltokL5xAes1uu9UuZeAXsrFRoUIXTQk5Q/MDF5gMauWxLGHWpkLC
5JPB2EnvQVC5K7CCprVZS9RAS8/L1w9uRTj7SOs0u81MrnadbOOQ3KyXY9hejnM2
X4yFoJWIrbrBHfHKVTEAn5+E8ypIn2fIRoyknfTzMNy8W48vOZyIQbxGBYUHrsro
qg0vk9RP3PUJ8iGjtoJ3AEepdoAeH349ZyXtCGMKWU5TIw/ygUI=
-----END CERTIFICATE-----)";
constexpr char kServerKey[] =
R"(-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----)";
} // namespace
class RecognitionService : public rvl::recognition::Service {
public:
grpc::Status ping(grpc::ServerContext* context,
const rvl::ping_request_t* request,
rvl::ping_reply_t* response) override {
return grpc::Status::OK;
}
};
int main(int argc, char** argv) {
grpc::ServerBuilder builder;
grpc::SslServerCredentialsOptions ssl_opts;
ssl_opts.pem_root_certs = kCaCert;
ssl_opts.pem_key_cert_pairs.push_back({kServerKey, kServerCert});
grpc::SslServerCredentials(ssl_opts));
RecognitionService service;
builder.RegisterService(&service);
auto server = builder.BuildAndStart();
server->Wait();
}