Создание центра сертификации
Суть нашей задачи заключается в создании небольшой инфраструктуры с открытыми ключами (PKI), что аналогично проверке сертификатов при посещении веб-сайтов.
Если концепции обмена ключами, асимметричного шифрования и прочих связанных тем вам незнакомы, не волнуйтесь - для выполнения наших задач по настройке стека не требуется глубокого понимания этих концепций. Тем не менее, основное представление о том, что происходит, пригодится, чтобы разобраться в процессе более подробно.
Когда вы заходите на сайт через протокол HTTPS, этот сайт должен убедить ваш браузер в своей подлинности, чтобы ваш компьютер доверял ему. Представьте это как проверку удостоверения личности. Выглядит ли оно настоящим? Не истек ли его срок? Фотография соответствует? Вы можете утверждать, что это вы, но как убедить полицейского в этом? Он проводит проверку, сравнивает данные и может даже связаться с учреждениями для подтверждения вашей личности.
В данном контексте эту проверку выполняет удостоверяющий центр, на который ссылается наша система, чтобы убедиться, что сертификат действителен. Этот центр может либо подтвердить сертификат, сказав: "Да, он действительно мой и это я подписал его", либо предоставить информацию о владельце сертификата. Это лишь общая схема, но что произойдет, если сертификат оказывается недействительным или удостоверяющий центр неизвестен? Вероятно, вы уже сталкивались с этим - ваш браузер предупреждает вас и говорит: "Осторожно, этому сайту нельзя доверять".

Теперь мы перейдем к созданию удостоверяющего центра, который можно назвать "самоподписанным" или "недоверенным", с использованием встроенных утилит Elasticsearch.
Создадим пакет удостоверяющего центра с помощью утилиты elasticsearch-certutil.

Теперь нам нужно разархивировать этот пакет с помощью утилиты unzip.

Теперь у нас есть каталог ca/, файл сертификата и соответствующий ключ для нашего удостоверяющего центра. Далее мы хотим создать некоторые сертификаты для подписи с его помощью. Используем для этого instances.yml
Мы будем использовать ту же утилиту elasticsearch-certutil для создания этих сертификатов:

Начнем с разархивации нового пакета сертификатов и создания новой директории под названием "certs"

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

Затем мы подготовим два каталога для хранения публичного сертификата удостоверяющего центра и отдельного сертификата для каждой из наших служб.

Скопируем этот сертификат в каждый из каталогов.

Сделайте то же самое с каждым отдельным сертификатом службы и каталогом certs.

Для дальнейшего удобства копирования сохраним публичный сертификат в корневом каталоге.

Удалим лишние файлы.

Last updated