我有一个本地生成的根证书 (Company_CA.pem),用于签署 PDF 文件。签名过程运行良好,在 Adobe 上安装公钥后,我能够验证签名和证书。
现在,我需要在终端中执行此操作,因此,我尝试pdfsig
在 Ubuntu 22.04 Docker 映像上使用它。
据我了解,要使证书验证正常工作,我必须将证书添加到网络安全服务 (NSS) 数据库。为此,我已完成以下操作
apt-get update
apt-get -y install libnss3-tools
mkdir -p $HOME/.pki/nssdb
chmod -R 0700 $HOME/.pki
certutil -d sql:$HOME/.pki/nssdb -N --empty-password
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n company -i /Company_CA.pem
整个过程没有错误地完成。但是,当我pdfsig
使用 pdf 文件运行时,我得到了
- Signer Certificate Common Name: Sig D
- Signer full Distinguished Name: [email protected],CN=Sig D,O=Company,L=Marina Del Rey,ST=CA,C=USA
- Signing Time: Jan 11 2022 12:46:49
- Signing Hash Algorithm: SHA-256
- Signature Type: adbe.pkcs7.detached
- Signed Ranges: [0 - 115717], [120036 - 257774]
- Not total document signed
- Signature Validation: Signature is Valid.
- Certificate Validation: Certificate issuer isn't Trusted.
当我跑步时certutil -d sql:$HOME/.pki/nssdb -L
,我得到
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
company C,,
为什么我仍然会得到Certificate issuer isn't Trusted.
。我是不是漏掉了什么?我怎样才能让自己(认证颁发者)得到信任?
我曾尝试使用trustargs
(即 -t“P,P,P”)但结果仍然相同。
我在跑
pdfsig -v
pdfsig version 22.02.0
Copyright 2005-2022 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011 Glyph & Cog, LLC
答案1
pdfsig 22.04 文档中有一个选项-nssdir
可以指定证书数据库位置。否则,它将使用 /etc/pki/nssdb 或默认 Firefox 配置文件中的数据库,即 $HOME/.mozilla/firefox/*.default
https://manpages.ubuntu.com/manpages/jammy/man1/pdfsig.1.html