Введение
В этом практическом занятии (лабораторной работе) вы научитесь загружать ключ подписи в хранилище ключей Docker Trust с помощью команды docker trust key load. Вы начнете с подготовки файла приватного ключа для подписи образов Docker с использованием openssl.
После генерации ключа вы загрузите этот приватный ключ в хранилище ключей Docker Trust, которое представляет собой безопасное место для хранения криптографических ключей. Наконец, вы узнаете, как загрузить приватный ключ с определенным именем в хранилище ключей.
Подготовить файл приватного ключа для подписи
На этом этапе вы научитесь готовить файл приватного ключа для подписи образов Docker. Docker Content Trust использует криптографические ключи для проверки целостности и аутентичности образов. Приватный ключ необходим для подписи образов, а соответствующий публичный ключ используется другими пользователями для проверки подписи.
Сначала перейдите в каталог ~/project, который является вашим рабочим каталогом для этого практического занятия (лабораторной работы).
cd ~/project
Теперь сгенерируйте новый приватный ключ RSA с помощью команды openssl. Эта команда создаст приватный ключ размером 4096 бит и сохранит его в файл с именем my-signing-key.pem в текущем каталоге.
openssl genrsa -out my-signing-key.pem 4096
Вы увидите вывод, указывающий на процесс генерации ключа. Эта команда генерирует приватный ключ в формате PEM.
Далее проверим, что файл my-signing-key.pem был создан в каталоге ~/project.
ls -l my-signing-key.pem
Вы должны увидеть список файлов с указанием их прав доступа, владельца, группы, размера и времени изменения. Это подтверждает, что файл приватного ключа был успешно сгенерирован.
Загрузить приватный ключ в хранилище ключей Docker Trust
На этом этапе вы загрузите приватный ключ, сгенерированный на предыдущем этапе, в хранилище ключей Docker Trust. Хранилище ключей Docker Trust представляет собой безопасное место, где Docker хранит криптографические ключи, используемые для подписи и проверки образов.
Хранилище ключей Docker Trust находится в каталоге ~/.docker/trust/private. Вам нужно скопировать файл приватного ключа, который вы создали (my-signing-key.pem), в этот каталог.
Сначала убедитесь, что вы находитесь в каталоге ~/project, где вы создали приватный ключ.
cd ~/project
Теперь скопируйте файл my-signing-key.pem в каталог приватных ключей Docker Trust. Возможно, вам придется создать этот каталог, если он не существует.
mkdir -p ~/.docker/trust/private
cp my-signing-key.pem ~/.docker/trust/private/
Команда mkdir -p создает каталог и все необходимые родительские каталоги, если они еще не существуют. Команда cp копирует файл приватного ключа.
После копирования файла вы можете проверить, что приватный ключ теперь находится в хранилище ключей Docker Trust, выведя список содержимого каталога ~/.docker/trust/private.
ls ~/.docker/trust/private/
В выводе вы должны увидеть my-signing-key.pem. Это подтверждает, что приватный ключ был успешно загружен в хранилище ключей Docker Trust.
Загрузить приватный ключ с определенным именем
На этом этапе вы научитесь загружать приватный ключ в хранилище ключей Docker Trust с определенным именем. Хотя вы можете просто скопировать файл ключа, как это было сделано на предыдущем этапе, использование команды docker trust key load позволяет связать определенное имя с ключом в системе Docker Trust. Это может быть полезно для управления несколькими ключами подписи.
Сначала убедитесь, что вы находитесь в каталоге ~/project, где вы создали файл приватного ключа my-signing-key.pem.
cd ~/project
Теперь используйте команду docker trust key load для загрузки приватного ключа. Вас попросят ввести имя для ключа. Назовем этот ключ my-signer.
docker trust key load my-signing-key.pem --name my-signer
При запросе введите my-signer в качестве имени для ключа.
Loading key from 'my-signing-key.pem'...
Enter name for new key: my-signer
После ввода имени вас попросят ввести пароль для нового ключа. В рамках этого практического занятия (лабораторной работы) вы можете оставить пароль пустым, просто нажав Enter. В реальной жизни настоятельно рекомендуется использовать надежный пароль для защиты вашего приватного ключа.
Enter passphrase for new key:
Repeat passphrase for new key:
Вы должны увидеть вывод, указывающий на то, что ключ был успешно загружен.
Successfully loaded private key from 'my-signing-key.pem' with ID '...'
Для проверки того, что ключ был загружен с указанным именем, вы можете вывести список ключей в вашем хранилище ключей Docker Trust с помощью команды docker trust key list.
docker trust key list
Вы должны увидеть запись с именем (NAME) my-signer и соответствующим идентификатором ключа (KEY ID). Это подтверждает, что вы успешно загрузили приватный ключ с определенным именем.
Резюме
В рамках этого практического занятия (лабораторной работы) вы научились готовить файл приватного ключа для подписи образов Docker с использованием команды openssl genrsa. Затем вы попрактиковались в загрузке сгенерированного приватного ключа в хранилище ключей Docker Trust путем копирования файла ключа в каталог ~/.docker/trust/private.



