Руководство разработчика по пакетированию приложений

Управление сертификатом

Перед созданием подписанного пакета необходимо создать хранилище ключей пакета. Сертификаты в этом хранилище ключей сертификата хранятся в виде объектов. В хранилище ключей пакета есть два типа объектов:

Доверенный сертификат

Доверенный сертификат, содержащий один сертификат открытого ключа, принадлежащий другой организации. Доверенный сертификат называется таковым, поскольку владелец хранилища ключей считает, что открытый ключ в сертификате принадлежит организации (лицу), указанному в поле “тема” (владелец) сертификата. Издатель сертификата делает его доверенным, подписывая сертификат.

При проверке подписей и подключении к защищенному серверу (по протоколу SSL) используются доверенные сертификаты.

Пользовательский ключ

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

Пользовательские ключи используются при создании подписанного пакета.

По умолчанию хранилище ключей расположено в каталоге /var/sadm/security. Отдельные пользователи могут также иметь собственные хранилища ключей, которые по умолчанию располагаются в каталоге $HOME/.pkg/security.

На диске хранилище ключей может иметь два формата: формат одного файла и формат нескольких файлов. При использовании формата нескольких файлов объекты хранятся в нескольких файлах. Каждый тип объекта хранится в отдельном файле. Все эти файлы должны быть зашифрованы с помощью одного пароля. При использовании хранилища в формате одного файла все объекты хранятся в одном файле файловой системы.

Основным средством для управления сертификатами и хранилищем ключей пакета является команда pkgadm. Более распространенные задачи, которые используются при управлении хранилищем ключей пакета, представлены в подразделах ниже.

Добавление доверенных сертификатов в хранилище ключей пакета

Доверенный сертификат можно добавить в хранилище пакета с помощью команды pkgadm. Сертификат может иметь формат PEM или DER. Пример:


$ pkgadm addcert -t /tmp/mytrustedcert.pem

В этом примере сертификат в формате PEM имеет имя mytrustedcert.pem и добавлен в хранилище ключей пакета.

Добавление в хранилище пакета пользовательского сертификата и секретного ключа

С помощью команды pkgadm невозможно создание пользовательских сертификатов или секретных ключей. Пользовательские сертификаты и секретные ключи обычно можно получить от центра сертификации, например Verisign. Их также можно создать локально в виде самоподписанных сертификатов. После получения ключа и сертификата их можно импортировать в хранилище ключей пакета с помощью команды pkgadm. Пример:


pkgadm addcert -n myname -e /tmp/myprivkey.pem /tmp/mypubcert.pem

В этом примере используются следующие параметры:

-n myname

Указывает организацию или лицо (myname) в хранилище данных пакета, над которым необходимо выполнять действие. Организация myname становится псевдонимом, под которым хранятся объекты.

-e /tmp/myprivkey.pem

Указывает файл, содержащий секретный ключ. В этом случае этот файл - myprivkey.pem, который расположен в каталоге /tmp.

/tmp/mypubcert.pem

Указывает сертификат формата PEM, который имеет имя mypubcert.pem .

Проверка содержимого хранилища ключей пакета

Команда pkgadm также используется для просмотра содержимого хранилища ключей пакета. Пример:


$ pkgadm listcert

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

Удаление из хранилища пакета пользовательских сертификатов и секретных ключей

Чтобы удалить доверенные сертификаты и закрытые ключи из хранилища ключей пакета, можно использовать команду pkgadm.

При удалении пользовательских сертификатов необходимо указывать псевдоним пары сертификат/ключ. Пример:


$ pkgadm removecert -n myname

Псевдоним сертификата - это его общее имя, которое может быть указано с помощью команды pkgadm listcert. Например, с помощью этой команды производится удаление доверенного сертификата с именем Trusted CA Cert 1:


$ pkgadm removecert -n "Trusted CA Cert 1"

Примечание –

Если под одним псевдонимом хранятся доверенный сертификат и пользовательский сертификат, при использовании параметра -n оба они удаляются.