Я пишу сервер mTLS gRPC на Golang. Одноранговые узлы могут быть однозначно идентифицированы через Общее имя их сертификата. Мой вопрос: как я могу получить доступ к сертификату клиента, субъекту сертификата клиента или общему имени сертификата клиента в реализации интерфейса сообщений gRPC?
Подробнее о контексте:
Предположим, что есть только одна служба NameService
и один метод с именем Add
. Итак, мой файл .proto будет содержать следующее (используя синтаксис proto3):
service NameService {
rpc Add(Name) returns (Empty) {}
}
message Name {
string name = 1;
}
message Empty {
}
Затем мне нужно будет реализовать следующий интерфейс:
type NameServiceServer interface {
Add(context.Context, *Name) (*Empty, error)
}
В реализации метода Add
я хотел бы прочитать сертификат узла. Как я могу это сделать?
P.S. Я только начинаю работать с Golang, поэтому прошу прощения, если есть очевидный ответ, который я пропустил. Заранее спасибо!
.Subject
на.Subject.CommonName
). - person Brits   schedule 18.07.2021