mirror of https://github.com/grpc/grpc.git
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
https://grpc.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.0 KiB
40 lines
1.0 KiB
7 months ago
|
# Authentication Example
|
||
|
|
||
|
## Overview
|
||
|
|
||
|
SSL is a commonly used cryptographic protocol to provide end-to-end
|
||
|
communication security. In the example, we show how to set up a server
|
||
|
authenticated SSL connection to transmit RPC.
|
||
|
|
||
|
We provide `grpc::SslServerCredentials` and `grpc::SslCredentials` types
|
||
|
to use SSL conections.
|
||
|
|
||
|
In our example, we use the public/private keys created ahead:
|
||
|
* "localhost.crt" contains the server certificate (public key).
|
||
|
* "localhost.key" contains the server private key.
|
||
|
* "root.crt" contains the certificate (certificate authority)
|
||
|
that can verify the server's certificate.
|
||
|
|
||
|
### Try it!
|
||
|
|
||
|
Once you have working gRPC, you can build this example using either bazel or cmake.
|
||
|
Make sure to run those at this directory so that they can read credential files properly.
|
||
|
|
||
|
Run the server, which will listen on port 50051:
|
||
|
|
||
|
```sh
|
||
|
$ ./ssl_server
|
||
|
```
|
||
|
|
||
|
Run the client (in a different terminal):
|
||
|
|
||
|
```sh
|
||
|
$ ./ssl_client
|
||
|
```
|
||
|
|
||
|
If things go smoothly, you will see the client output:
|
||
|
|
||
|
```
|
||
|
Greeter received: Hello world
|
||
|
```
|