package
1.12.6
Repository: https://github.com/go-dev-frame/sponge.git
Documentation: pkg.go.dev

# README

gtls

gtls provides grpc secure connectivity by tls, supporting both one-way secure connection and mutual tls connection.

Example of use

One-way secure connection

grpc server example

import "github.com/go-dev-frame/sponge/pkg/grpc/gtls"

func main() {
    // one-way connection
    credentials, err := gtls.GetServerTLSCredentials(
        certfile.Path("/one-way/server.crt"),
        certfile.Path("/one-way/server.key"),
    )
    // check err

    server := grpc.NewServer(grpc.Creds(credentials))
}

grpc client example

import "github.com/go-dev-frame/sponge/pkg/grpc/gtls"

func main() {
    // one-way connection
    credentials, err := gtls.GetClientTLSCredentials(
        "localhost",
        certfile.Path("/one-way/server.crt"),
	)
    // check err

    conn, err := grpc.NewClient("127.0.0.1:8080", grpc.WithTransportCredentials(credentials))
    // check err
}

Mutual tls connection

grpc server example

import "github.com/go-dev-frame/sponge/pkg/grpc/gtls"

func main() {
    // two-way secure connection
    credentials, err := gtls.GetServerTLSCredentialsByCA(
        certfile.Path("two-way/ca.pem"),
        certfile.Path("two-way/server/server.pem"),
        certfile.Path("two-way/server/server.key"),
    )
    // check err

    server := grpc.NewServer(grpc.Creds(credentials))
}

grpc client example

import "github.com/go-dev-frame/sponge/pkg/grpc/gtls"

func main() {
    // two-way secure connection
    credentials, err := gtls.GetClientTLSCredentialsByCA(
        "localhost",
        certfile.Path("two-way/ca.pem"),
        certfile.Path("two-way/client/client.pem"),
        certfile.Path("two-way/client/client.key"),
    )
    // check err

    conn, err := grpc.NewClient("127.0.0.1:8080", grpc.WithTransportCredentials(credentials))
    // check err
}

# Packages

Package certfile is used to locate the certificate file.

# Functions

GetClientTLSCredentials TLS encryption.
GetClientTLSCredentialsByCA two-way authentication via CA-issued root certificate.
GetServerTLSCredentials server-side authentication.
GetServerTLSCredentialsByCA two-way authentication via CA-issued root certificate.