web-dev-qa-db-fra.com

Comment distribuer un certificat de CA à l'aide d'un paquet Debian?

La méthode habituelle pour ajouter votre propre certificat de CA à Ubuntu est la suivante:

cp cert.pem /usr/local/share/ca-certificates
update-ca-certificates

J'aimerais distribuer mon certificat de CA à l'aide d'un paquet Debian, mais /usr/local/ est interdit aux paquets (et lintian se plaint, et le Centre de logiciels dénonce mon paquet comme étant de qualité médiocre). Alors, quelle est la méthode standard pour le faire en utilisant l’emballage Debian? J'ai essayé de regarder ca-certificates-Java, mais je ne pouvais pas en comprendre le sens.

3
muru

Il semble que the_Seppi et bodhi.zazen sont corrects: le seul moyen propre de le faire consiste à utiliser un script de maintenance pour effectuer l'acte. De /usr/share/doc/ca-certificates/README.Debian:

How to install local CA certificates
------------------------------------------------------------------

                              ...  If you want to prepare a local
package of your certificates, you should depend on ca-certificates,
install the PEM files into /usr/local/share/ca-certificates/ as above
and call 'update-ca-certificates' in the package's postinst, and should
call 'update-ca-certificates --fresh' in the package's postrm.

An example source package for building a local CA certificate package,
using ca-certificates (>= 20130119) (since it uses triggers) can be
found in /usr/share/doc/ca-certificates/examples/ca-certificates-local/.
The README file in the above directory has step-by-step instructions for
building a local CA certificate package.

Le package exemple a un Makefile qui installe directement le fichier dans /usr/local/share/ca-certificates.

Cependant, la politique de Debian concernant l’installation de fichiers dans /usr/local ne le fait pas du tout (voir section 1.2, chapitre 9 ), soit directement, soit à l’aide d’un script de responsable.

Le compromis que je trouve acceptable consiste à utiliser les scripts et à placer des liens au lieu de les copier. De cette façon, un utilisateur final peut toujours tracer la provenance des éléments contenus dans /usr/local/.

Au lieu d'appeler update-ca-certificates avec des arguments différents, vous devez ajouter update-ca-certificates-fresh à liste des déclencheurs (comme indiqué dans le dernier paragraphe cité ci-dessus), ce qui permet de traiter les certificats avec toute autre mise à jour de certificat en attente:

echo 'activate update-ca-certificates-fresh' >> debian/package-name.triggers
2
muru