$ mkdir -p "~/.pki/cert8"
$ certutil -N -d ~/.pki/cert8/
Enter a password which will be used to encrypt your keys.
The password should be at least 8 characters long,
and should contain at least one non-alphabetic character.
Enter new password:
Re-enter password:
$ pk12util -d ~/.pki/cert8/ -i cert.pk12
Enter Password or Pin for "NSS Certificate DB":
Enter password for PKCS12 file:
pk12util: PKCS12 IMPORT SUCCESSFUL
$ ls ~/.pki/cert8/
cert8.db key3.db secmod.db
$ certutil -L -d ~/.pki/cert8/
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
[email protected] u,u,u
Xxxxxxxxxxxxxxxxxxxxxxxxxxxx CA ,,
XXxxxx xxxxxxxxxxxxxxxxxxx CA ,,
有了这个,至少所有工具都向我展示了 PDF 已签名。他们中的大多数人告诉我签名是有效的。但 Windows Acrobat Reader 仍然不服气。在 Acrobat 中,您需要显式手动信任证书。但是我来自 Linux 的 PDF 被标记为“已修改”。也许转移将 Linux 行尾更改为 Windows 行尾?
mkdir -p ~/.pki/nssdb
certutil -d ~/.pki/nssdb -N
...
Enter Password or Pin for "NSS Certificate DB":
Enter a password which will be used to encrypt your keys.
The password should be at least 8 characters long,
and should contain at least one non-alphabetic character.
Enter new password:
Re-enter password:
Password changed successfully.
...
pk12util -d ~/.pki/nssdb -i signing-certificate.p12
...
Enter Password or Pin for "NSS Certificate DB":
Enter password for PKCS12 file:
pk12util: PKCS12 IMPORT SUCCESSFUL
...
也许值得提供更多细节,如何使用 Libreoffice 签署 PDF。有一些陷阱,这是存储我的经验的好地方。
首先让自己获得一个 x509 证书,您可以使用它来签署/加密电子邮件。哪里可以买到,是动态变化的。免费的很少见,在最坏的情况下创建一个自签名。网上有很多关于如何做到这一点的解释。最后,您需要一个签名证书,包括 pk12 格式的私钥。
目前,假设 pk12 文件名为:
cert.pk12
现在证书在数据库中。在 Libreoffice 中的选项(工具 -> 选项... -> 安全 -> 证书... -> 选择 NSS 路径...)中,需要配置数据库的路径。
现在证书应该可以在“数字签名”对话框中选择。
有了这个,至少所有工具都向我展示了 PDF 已签名。他们中的大多数人告诉我签名是有效的。但 Windows Acrobat Reader 仍然不服气。在 Acrobat 中,您需要显式手动信任证书。但是我来自 Linux 的 PDF 被标记为“已修改”。也许转移将 Linux 行尾更改为 Windows 行尾?
只有通过“导出为 PDF”才能使用“时间戳授权”(TSA)。
添加:使用
seahorse
(通过单击“启动证书管理器”从 Libreoffice 启动)无法添加 x509 证书(至少在撰写本文时)。获得证书分为三个基本阶段。
您可以从证书颁发机构获得证书。无论您选择政府机构还是私人公司,这项服务通常都会被收费,例如当他们证明您的身份时。很少有其他权威机构免费颁发证书,例如开源项目“CAcert”,它基于众所周知且可靠的 Web of Trust 模型,并且越来越受欢迎。
如果您使用的是 Solaris 或 Linux,则必须安装最新版本的 Thunderbird 或 Firefox 才能安装一些加密所需的系统文件。
对文档中的宏进行签名。通常,宏是文档的一部分。如果您对文档进行签名,文档内的宏会自动签名。
参考
以下是您如何生成自己的证书以在 libreoffice 上(例如 Debian)中签署文档,并设置自己这样做:
准备
安装必要的工具:
制作证书
首先,生成一个 x509 证书:
请注意,
subjectAltName
可以包含email:
而不是DNS 条目接下来,将证书转换为 p12 格式的密钥:
制作 NSS 数据库
接下来,我们需要为 NSS 准备一个数据库路径并生成数据库:
请注意,有问题的密码是您的默认主 firefox 密码(在 Debian/Ubuntu 上)。因此,如果您还没有设置一个,它是一个空字符串 - 一旦你这样做,它会提示你输入一个新的并更改它
或者,在不添加密码的情况下这样做(参考 4):
最后,将 p12 证书导入数据库:
请注意,如果您想花哨,可以使用 -k ${database.password.file} -w ${certificate.password.file} 以编程方式标记密码
配置 LibreOffice
~/.pki/nssdb
,选择正确的路径(即),选择Ok(确保选择了新的 Manual 路径),最后Restart Now。最后,您可以进入File ⇨ Digital Signatures ...
参考: