我在 MS Windows 上使用的 Adobe Reader 能够验证 PDF 文件中的数字签名(使用 X.509 证书创建)。
我想在 Linux 桌面上进行此类验证。我尝试过 Evince 和 Okular,这是最受推荐的 PDF 阅读器,但它们无法做到这一点。另一方面,Adobe Reader 不适用于 Linux(请参阅https://get.adobe.com/reader/otherversions/)。当前版本的 Firefox 和 Chrome 中内置的 PDF 阅读器均无法验证签名。
我可以使用 GUI、命令行工具或 Firefox/Chrome 扩展来执行此操作。
答案1
Poppler (poppler-utils) 包含pdfsig
,它根据存储的已知证书验证签名。
它还不是超级先进(没有出口),但已经向前迈了一大步。
更新:原始错误编号为16770并于 2016-03-01 投入生产;它首先被纳入v0.42。
答案2
Libreoffice Draw 能够读取 PDF 并允许验证文档的证书和签名(File -> Digital Signatures -> Digital Signatures…
)。
此外,加载 PDF 时,如果无法验证证书但签名正确,则会出现一条警告消息。
我已经使用 6.0.4.2 进行了测试,但根据与 LibreOffice 中的 PDF 签名相关的众筹页面这可能在 2015 年就已实现,当时的版本为 4.4 或 4.5。
答案3
使用以下任一方式:
- LibreOffice 绘图
- 自 KDE 应用程序 19.04.0 起 Okular
- Evince 不支持,但有一个非官方补丁
pdfsig
(来自poppler-utils
,要求根证书安装在您的 Firefox 配置文件目录中)
答案4
以下步骤显示如何下载 Aadhaar 卡并将其转换为漂亮的 PDF:
- 去https://eaadhaar.uidai.gov.in/eaadhaar/并填写这张难看的表格。
- 输入短信中的代码下载并保存文件。我假设你将其保存为“aadhaar-unverified.pdf”。
- 从 deb-multimedia.org 存储库安装 acrobat reader 和 javascript 插件:apt-get install acroread acroread-plugins acroread-escript
- 用acroread打开文件,密码是城市的ZIP。
- 单击问号,将打开一个标题为“签名验证状态”的窗口。
- 单击“签名属性”打开同标题的窗口。
- 点击“显示证书”打开证书窗口。选择“信任”选项卡。
- 点击“添加到可信身份”。
- 单击“确定”关闭证书窗口。
- 点击“验证签名”。
- 单击“关闭”以关闭签名属性窗口。
- 将该页打印到文件“aadhaar-verified.ps”中。
- 将 postscript 文件转换为 pdf。以下命令只有一行。“sed”从 postscript 文件中删除愚蠢的“复制保护”,然后 ps2pdf 创建 PDF 文件。
sed "/mark currentfile eexec/,/cleartomark/ d" aadhaar-verified.ps | ps2pdf - aadhaar-verified.pdf
- 现在将您的 E-Aadhaar 卡的副本打印在纸上并备份您的 PDF 文件。
现在您有了一份经过验证的 PDF,您可以毫无问题地打印它。是不是很简单?