Some checks failed
codecov / upload (push) Failing after 13m59s
CodeQL / Analyze (push) Failing after 1s
Testing / vet-proto (push) Failing after 1s
Testing / tests (arm, latest) (push) Waiting to run
Testing / extras (latest) (push) Failing after 1s
Testing / static checks (latest-1) (push) Failing after 1s
Testing / tests (-race, latest) (push) Failing after 1s
Testing / tests (i386, latest) (push) Failing after 1s
Testing / tests (latest) (push) Failing after 1s
Testing / tests (latest-1) (push) Failing after 1s
Lock Threads / lock (push) Failing after 1s
govulncheck / govulncheck (.) (push) Failing after 1s
govulncheck / govulncheck (./cmd/protoc-gen-go-grpc) (push) Failing after 1s
govulncheck / govulncheck (./gcp/observability) (push) Failing after 1s
govulncheck / govulncheck (./security/advancedtls) (push) Failing after 1s
govulncheck / govulncheck (./stats/opencensus) (push) Failing after 1s
Stale bot / stale (push) Failing after 1s
29 lines
1.4 KiB
Markdown
29 lines
1.4 KiB
Markdown
# gRPC Advanced Security Examples
|
|
This repo contains example code for different security configurations for grpc-go using `advancedtls`.
|
|
|
|
The servers run a basic echo server with the following setups:
|
|
* Port 8885: A server with a good certificate using certificate providers and crl providers.
|
|
* Port 8884: A server with a revoked certificate using certificate providers and crl providers.
|
|
* Port 8883: A server running using InsecureCredentials.
|
|
|
|
The clients are designed to call these servers with varying configurations of credentials and revocation configurations.
|
|
* mTLS with certificate providers and CRLs
|
|
* mTLS with custom verification
|
|
* mTLS with credentials from credentials.NewTLS (directly using the tls.Config)
|
|
* Insecure Credentials
|
|
|
|
## Building and Running
|
|
```
|
|
# Run the server
|
|
$ go run server/main.go -credentials_directory $(pwd)/creds
|
|
# Run the clients from the `grpc-go/examples/features/advancedtls` directory
|
|
$ go run client/main.go -credentials_directory $(pwd)/creds
|
|
```
|
|
|
|
Stop the servers with ctrl-c or by killing the process.
|
|
|
|
## Developer Note - Generate the credentials used in the examples
|
|
The credentials used for these examples were generated by running the `examples/features/advancedtls/generate.sh` script.
|
|
|
|
If the credentials need to be re-generated, run `./generate.sh` from `/path/to/grpc-go/examples/features/advancedtls` to re-create the `creds` directory containing the certificates and CRLs needed for these examples.
|