Avant de créer un package signé, vous devez disposer d'un keystore de package. Ce keystore de package contient des certificats sous la forme d'objets. Un keystore de package contient deux types d'objets :
Certificat de confiance contenant un seul certificat à clé publique appartenant à une autre entité. Le certificat de confiance est nommé ainsi parce que le propriétaire du keystore espère que la clé publique contenue dans le certificat appartient en effet à l'entité indiquée par le sujet (propriétaire) du certificat. L'émetteur du certificat garantit cette confiance en signant le certificat.
Les certificats de confiance sont utilisés lors de la vérification des signatures et lors de l'initialisation d'une connexion à un serveur sécurisé (SSL).
Une clé utilisateur renferme toutes les informations sensibles de la clé de chiffrement. Ces informations sont stockées dans un format protégé pour empêcher tout accès non autorisé. Une clé utilisateur se compose de la clé privée d'un utilisateur et du certificat à clé publique correspondant à la clé privée.
Les clés utilisateur sont utilisées dans le cadre de la création d'un package signé.
Par défaut, le keystore du package est stocké dans le répertoire /var/sadm/security. Les utilisateurs peuvent disposer de leur propre keystore stocké par défaut dans le répertoire $HOME/.pkg/security.
Sur disque, un keystore de package peut utiliser deux formats : un format multifichier et un format monofichier. Un format multifichier stocke ses objets dans plusieurs fichiers. Chaque type d'objet est stocké dans un fichier distinct. Tous ces fichiers doivent être chiffrés à l'aide de la même phrase de passe. Un keystore monofichier stocke tous ses objets dans un seul fichier dans le système de fichiers.
Le principal utilitaire servant à gérer les certificats et le keystore du package est la commande pkgadm. Les sous-sections suivantes décrivent les opérations de gestion du keystore du package les plus courantes.
Vous pouvez ajouter un certificat de confiance au keystore du package à l'aide de la commande pkgadm. Le certificat peut être au format PEM ou DER. Exemple :
$ pkgadm addcert -t /tmp/mytrustedcert.pem |
Dans cet exemple, le certificat au format PEM appelé moncertdeconf.pem est ajouté au keystore du package.
La commande pkgadm ne génère pas de certificats utilisateur ni de clés privées. Les certificats utilisateur et les clés privées sont en général obtenus auprès d'une autorité de certification telle que Verisign. Ils sont aussi générés localement en tant que certificat autosigné. Une fois la clé et le certificat obtenus, vous pouvez les importer dans le keystore du package à l'aide de la commande pkgadm. Exemple :
pkgadm addcert -n myname -e /tmp/myprivkey.pem /tmp/mypubcert.pem |
Dans cet exemple, les options suivantes sont utilisées :
-n monnom |
Identifie l'entité (monnom) du keystore du package sur laquelle opérer. L'entité monnom devient l'alias sous lequel les objets sont stockés. |
-e /tmp/maclépriv.pem |
Spécifie le fichier contenant la clé privée. Dans ce cas, le fichier est maclépriv.pem, stocké dans le répertoire /tmp. |
/tmp/moncertpub.pem |
Indique le fichier de certificat au format PEM appelé moncertpub.pem. |
La commande pkgadm sert également à afficher le contenu du keystore du package. Exemple :
$ pkgadm listcert |
Cette commande affiche les certificats de confiance et clés privées contenus dans le keystore du package.
La commande pkgadm peut être utilisée pour supprimer des certificats de confiance et des clés privées du keystore du package.
Lorsque vous supprimez des certificats utilisateur, l'alias de la paire certificat/clé doit être spécifié. Exemple :
$ pkgadm removecert -n myname |
L'alias du certificat correspond au nom usuel du certificat, qui peut être identifié à l'aide de la commande pkgadm listcert. Par exemple, la commande suivante supprime un certificat de confiance appelé Trusted CA Cert 1 :
$ pkgadm removecert -n "Trusted CA Cert 1" |
Si un certificat de confiance et un certificat utilisateur sont stockés sous le même nom d'alias, ils sont tous deux supprimés lorsque vous spécifiez l'option -n.