验证
盖章完成后,照例开始介绍如何验证了,验证签章就是PDF中的验证签名。操作很简单,可以通过鼠标单击或右键菜单验证签名,也可以通过“填写和签名”视图的“使用证书”——“验证所有签名”(Arcobat中是“高级”——“签名和验证”——“验证所有签名”)来验证。验证结果应该如下:
点击“签名属性”,弹出属性窗体。
这样的验证结果是一切正常的结果,内容都很好理解,就不用多说。下面讲一下“异常”却又很常见的几种验证结果。
证书不被信任
绿色的对勾变成可黄色的惊叹号,这是因为盖章用的签名证书没有被Reader信任。单击“显示签名者证书”可以看到详情。
这种机制和Windows的证书信任机制类似,解决方法有两种:
一是将签名证书或它的根证书添加到Reader的“可信任证书”库里。可以上面窗体左边选择要信任的证书,右边选择“信任”选项卡,点击“添加到可信任证书”,弹出“导入联系人设置”窗体。
勾选“将本证书用作可信任根”,则以此证书作为顶级的证书链的所有证书,都将被Reader信任;否则,Reader只信任此证书。信任证书的用途至少要选择“已签名文档或数据”,这样验证签名时证书才被认为有效。验证文档时才把证书加入信任库的方法有时并不安全,Adobe Reader也会提醒“直接信任来自文档的证书通常是不明智的”,合理的做法是用户应该事先确认此证书确实可信,再加入可信任证书库。所以Adobe Reader也提供了通过菜单“编辑”——“首选项”——“种类”——签名”——“数字签名”——“身份与可信任证书” ——“更多”——“可信任证书”的方法来直接管理可信任证书库。可以看出和Windows一样,Reader也预装了很多CA的根证书。
二是让Reader信任Windows“受信任的根证书颁发机构”里的根证书,这样就可以直接信任以这些根证书为顶点的证书链上的证书了,而不用再添加。手工设置的方法是菜单“编辑”——“首选项”——“种类”——签名”——“数字签名”——“验证” ——“更多”——“Windows集成”——勾选“确认签名”。Acrobat中是在“编辑”——“首选项”——“种类”——“安全性”——“数字签名”——“高级首选项”——“Windows集成”——勾选“确认签名”。
此外可以通过设置注册表HKEY_CURRENT_USER\Software\Adobe\产品名称\版本号\Security\cASPKI\cMSCAPI_DirectoryProvider\iMSStoreTrusted的值为96(十进制),达到同样的效果。产品名称是“Adobe Acrobat”或“Acrobat Reader”,版本号如果为数字的话,需要带一位小数,比如“11.0”。这样可以通过程序自动设置,不用用户再手工操作。