Certificato ACME per GRPC - go

È possibile installare m.GetCertificate in un client / server GRPC?

   m := &autocert.Manager{
Cache:      autocert.DirCache("tls"),
Prompt:     autocert.AcceptTOS,
HostPolicy: autocert.HostWhitelist("example.com"),
}
go http.ListenAndServe(":http", m.HTTPHandler(nil))
cert, err := m.GetCertificate(...)
if err != nil {
t.Fatalf("Failed to generate certificates %s", err)
}
creds := credentials.NewServerTLSFromCert(cert)
srv := grpc.NewServer(grpc.Creds(creds))
reflection.Register(srv)

https://godoc.org/golang.org/x/crypto/acme/autocert

risposte:

0 per risposta № 1

Speriamo che questo sia utile:

Documentazione: https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-auth-support.md

Codice di esempio: https://github.com/grpc/grpc-go/tree/master/examples/oauth


0 per risposta № 2

https://github.com/golang/go/issues/24894

Utilizzare NewTLS anziché NewServerTLSFromCert.

https://godoc.org/google.golang.org/grpc/credentials#NewTLS

Crediti a FiloSottile

    m := &autocert.Manager{
Cache:      autocert.DirCache("tls"),
Prompt:     autocert.AcceptTOS,
HostPolicy: autocert.HostWhitelist("gps.nyimbo.nl"),
}
go http.ListenAndServe(":http", m.HTTPHandler(nil))
creds := credentials.NewTLS(&tls.Config{GetCertificate: m.GetCertificate})
srv := grpc.NewServer(grpc.Creds(creds))
reflection.Register(srv)