Guide du développeur pour l'empaquetage d'applications

Gestion de certificats

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

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).

Clé utilisateur

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.

Ajout de certificats de confiance au keystore du package

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.

Ajout d'un certificat utilisateur et d'une clé privée 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.

Vérification du keystore du package

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.

Suppression de certificats de confiance et de clés privées du keystore d'un 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"

Remarque –

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.