IT заметки по программированию
IT заметки по программированию
IT заметки по программированию
IT заметки по программированию

Golang: генерация сертификатов с собственным корневым сертификатом для использования mTLS для работы микросервисов

Вот пошаговое руководство по генерации сертификатов с использованием собственного корневого сертификата (CA) для настройки mTLS между микросервисами.


1. Создание собственного корневого сертификата (CA)

Корневой сертификат будет использоваться для подписывания сертификатов сервера и клиента.

  • ca.key: закрытый ключ корневого сертификата.
  • ca.crt: самоподписанный корневой сертификат.

2. Генерация сертификата для сервиса (сервер)

  1. Создаём ключ и запрос на подпись (CSR) для сервера.
    Подписываем серверный сертификат с использованием корневого сертификата.
     
  • server.key: приватный ключ сервера.
  • server.csr: запрос на подпись сертификата.
  • server.crt: подписанный сертификат сервера.

3. Генерация сертификата для клиента

  1. Создаём ключ и запрос на подпись (CSR) для клиента.
    Подписываем клиентский сертификат с использованием корневого сертификата.
    • client.key: приватный ключ клиента.
    • client.csr: запрос на подпись сертификата.
    • client.crt: подписанный сертификат клиента.

4. Настройка сервера для mTLS

Пример кода сервера на Go:

5. Настройка клиента для mTLS

Пример кода клиента на Go:

6. Проверка

  1. Запустите сервер.
  2. Запустите клиента.
  3. Проверьте, что соединение устанавливается только при наличии правильных сертификатов.

Полезные советы

  • Для автоматизации генерации сертификатов используйте скрипты или инструменты вроде cfssl.
  • В продакшене избегайте самоподписанных сертификатов — используйте внешние CA (например, HashiCorp Vault или Let’s Encrypt).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *