Обновление CA Swarm с использованием пользовательского сертификата и ключа
На этом шаге мы узнаем, как обновить CA Swarm, используя пользовательский сертификат и ключ. Это полезно, если вы хотите использовать свою собственную инфраструктуру CA или интегрировать Swarm с существующей инфраструктурой открытых ключей (PKI - Public Key Infrastructure).
Для обновления CA Swarm с использованием пользовательского сертификата и ключа вам нужно указать пути к файлам пользовательского сертификата и ключа CA с помощью флагов --cert
и --key
в команде docker swarm ca --rotate
.
Сначала создадим фиктивные файлы сертификата и ключа для демонстрации. В реальной жизни вы будете использовать реальные сертификат и ключ CA.
Убедитесь, что вы находитесь в своем домашнем каталоге ~/project
.
pwd
Вы должны увидеть /home/labex/project
.
Теперь создадим фиктивные файлы сертификата и ключа. Мы будем использовать openssl
для генерации самоподписанного сертификата и приватного ключа.
openssl req -x509 -nodes -newkey rsa:2048 -keyout ~/project/custom_ca.key -out ~/project/custom_ca.crt -days 365 -subj "/CN=custom-swarm-ca"
Эта команда генерирует приватный ключ (custom_ca.key
) и самоподписанный сертификат (custom_ca.crt
), действительные в течение 365 дней с общим именем "custom-swarm-ca".
Теперь, когда у нас есть пользовательский сертификат и ключ, мы можем обновить CA Swarm, используя эти файлы.
sudo docker swarm ca --rotate --cert ~/project/custom_ca.crt --key ~/project/custom_ca.key
Вы увидите вывод, указывающий на то, что CA обновляется с использованием пользовательского сертификата и ключа. Вывод будет похож на следующий:
Swarm CA rotated.
После завершения обновления Swarm начнет использовать ваш пользовательский сертификат CA. Узлы в Swarm автоматически обновят свои сертификаты, чтобы они были подписаны вашим пользовательским CA.
Чтобы убедиться, что CA был обновлен с использованием вашего пользовательского сертификата, вы можете снова просмотреть сертификат CA Swarm:
sudo docker swarm ca --cert-dir /var/lib/docker/swarm/certificates
Проверьте вывод. Поле Issuer
теперь должно показывать общее имя вашего пользовательского CA, то есть "CN=custom-swarm-ca".