Перед созданием подписанного пакета необходимо создать хранилище ключей пакета. Сертификаты в этом хранилище ключей сертификата хранятся в виде объектов. В хранилище ключей пакета есть два типа объектов:
Доверенный сертификат, содержащий один сертификат открытого ключа, принадлежащий другой организации. Доверенный сертификат называется таковым, поскольку владелец хранилища ключей считает, что открытый ключ в сертификате принадлежит организации (лицу), указанному в поле “тема” (владелец) сертификата. Издатель сертификата делает его доверенным, подписывая сертификат.
При проверке подписей и подключении к защищенному серверу (по протоколу 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 оба они удаляются.