This project demonstrates building a secure gRPC server in Golang using mutual TLS (mTLS). The server supports producing and consuming in-memory logs, ensuring authenticated and encrypted communication between client and server.
- protoc compiler: Install the Protocol Buffers compiler.
- On macOS:
brew install protobuf
- On Linux (Ubuntu):
sudo apt install -y protobuf-compiler
- On Windows: Download from the Protocol Buffers releases.
- On macOS:
Run the following command to install all project dependencies:
go mod tidy
- spec/: Protocol Buffers file defining gRPC service and messages
- cert/: Directory for ca configs and certificates requests
- log/: logging functionality implementation in Go
- server/: gRPC server implementation in Go
- config/: Configurations for mutual TLS
- Compile protocol buffers
make compile
- Initialize certificates storing directory
make init
- Generate certificates
make gencert
- Test the mutula TLS
make test