Я хочу, чтобы клиентам требовались разные сертификаты для доступа к разным конечным точкам / службам нашего сервера. Например, клиент, пытающийся зарегистрироваться для доступа к конечной точке реестра, потребует сертификат, выданный root CA. После регистрации сервер сгенерирует еще один сертификат, чтобы клиент мог получить доступ к остальной части приложения.
Итак, поток, который я пытаюсь использовать, следующий:
- Сервер и клиент оба генерируют сертификаты из root CA
- Клиент пытается зарегистрироваться с его / ее начальным сертификатом
- Если регистрация действительна, то сервер сгенерирует сертификат, подписанный собственными серверами сертификат Этот новый сертификат будет иметь учетные данные клиента (IP-адрес, имя и т.д. c ...)
- Сервер возвращает новый сертификат клиенту, и теперь клиент может получить доступ к другим конечным точкам / службам
Является ли это допустимым потоком, которому я пытаюсь следовать, и возможно ли это с использованием GRP C в Go?