向 Ubuntu 添加自己的 CA 证书的通常方法是:
cp cert.pem /usr/local/share/ca-certificates
update-ca-certificates
我想使用 Debian 软件包分发我的 CA 证书,但/usr/local/
软件包无法使用(并且lintian
会抱怨,软件中心会谴责我的软件包质量低劣)。那么使用 Debian 打包进行此操作的标准方法是什么?我尝试查看ca-certificates-java
,但我无法理解它在做什么。
答案1
看来 the_Seppi 和 bodhi.zazen 是正确的:唯一干净的方法是使用维护者脚本来完成此操作。来自/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.
示例包中有一个Makefile
,它直接将文件安装到/usr/local/share/ca-certificates
。
然而,Debian 安装文件的政策/usr/local
是根本不这样做(参见第 9 章第 1.2 节),可以直接执行,也可以使用维护者脚本。
我认为可以接受的折衷方案是使用脚本,并放置链接而不是复制它们。这样,最终用户仍然可以追踪内容的来源/usr/local/
。
而不是update-ca-certificates
使用不同的参数进行调用,应该添加update-ca-certificates-fresh
到触发器列表(如上面引用的最后一段所述),允许证书与任何其他待处理的证书更新一起处理:
echo 'activate update-ca-certificates-fresh' >> debian/package-name.triggers