Меню

SLIDER.WEB studio

СоцСсылки

БЛОГ


Свой CA за 20 секунд

Иногда, для организации работы приложений и сервисов требуется использовать защищенные SSL соединения. Будь то просто сайт, работающий по HTTPS или группа серверов, интегрированных между собой посредством этого протокола.

Именно такая задача вcтала у меня при развертывании одного децентрализованного приложения. Серверов много (более 40). Сертификатов понадобится столько-же. Сначала думал обойтись ,бесплатными, вроде Let's Encrypt, но слижком уж много действий по установке и настройке всей этой обвязки. Да еще и обновлять сертификат нужно раз в 90 дней.

Подумал я и решил, что

  • Сервера наружу не смотрят.
  • Работают автономно, почти без участия человека.
  • По этому не грех и самоподписными обойтись.

Но генерировать на каждый хость по сертификату и добавлять их в доверенные на каждом сервере - ну уж нет! (1600 итераций, божечки-кошечки)

Решено - поднять свой собственный CA и подписывать запросы в нем, попутно автоматизируя этот процесс.

Итак, нам понадобится утилита openssl ...и ПЯТЬ волшебных комманд.

1. Создадим корневой ключ:

openssl genrsa -out rootCA.key 2048

2. Теперь создадим корневой сертификат сроком на 3 года и 1 день

...кто нам запретит =):

openssl req -x509 -new -key rootCA.key -days 1096 -out rootCA.crt

После этого уже можно создавать сертификаты для наших серверов

3. Генерим на сервер ключ:

openssl genrsa -out server.key 2048

4. Создаем запрос на сертификат:

openssl req -new -key server.key -out server.csr

5. Подписываем данный запрос нашим корневым сертификатом:

openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -days 365

Или если необходим PEM сертификат:

openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -outform PEM -days 365

В данном примере используется сертификат на 1 год, но этот срок можно увеличить.

Я не рекомендую указывать срок действия сертификата болше чем срок действия корневого сертификата. Неоторый софт и ОС считают подписанный сертификат простроченным, если истек срок действия подписывающего сертификата.

После этих процедур можно раскатать на сервера наш конрневой сертификат, добавив его в доверенные, и после этого, все сертификаты, подписанные нашим CA будут приняты автоматически.

Вот и все. Свой собственный CA готов. Можно раздавать сертификаты.

Posted in Инфраструктура, Полезности on авг 30, 2017