如何使数字证书可用于LibreOffice Writer的数字签名?

我通过Firefox从CAcert获得了客户端证书。我想使用该证书对使用LibreOffice Writer创建的文档进行签名。

在Writer中,我点击文件 > 数字签名...以获取数字签名对话框,该对话框应该显示可用证书的列表。但是列表为空。

我该如何使我通过Firefox获得的证书在Writer中可用?

4个回答

第一部分:使用Firefox,将证书备份为.p12文件。
  1. 在Firefox中,点击“编辑”>“首选项”以显示首选项对话框。

  2. 在首选项对话框中,点击“高级”按钮。

  3. 在高级表单中,点击“查看证书”按钮以显示证书管理器对话框。

  4. 在证书管理器对话框中,点击“您的证书”选项卡。

  5. 展开相关的证书颁发机构名称,并点击相关证书进行选择。

  6. 点击“备份”按钮以显示名为“备份文件名”的另存为对话框。

  7. 在“备份文件名”对话框中的名称文本框中,输入要给备份文件命名的名称。

  8. 选择要保存文件的文件夹。

  9. 点击“保存”按钮以显示“选择证书备份密码”对话框。

  10. 两次输入您选择的密码。点击“确定”按钮。

  11. 将出现一个警告对话框,通知您证书和私钥已成功备份。点击“确定”按钮。

  12. 关闭其他两个打开的对话框。

第二部分:使用Thunderbird,将.p12文件导入到Thunderbird的证书存储中。

  1. 在Thunderbird中,点击“编辑”>“首选项”,以显示Thunderbird首选项对话框。

  2. 点击顶部菜单中的“高级”按钮。

  3. 在高级表单上,点击“证书”选项卡。

  4. 点击“查看证书”按钮,以显示证书管理器对话框。

  5. 点击“您的证书”选项卡。

  6. 点击“导入”按钮,以显示要导入的证书对话框。

  7. 找到从Firefox备份的.p12文件,单击它,然后单击“打开”按钮以显示密码输入对话框。

  8. 输入您用于从Firefox备份文件的密码,然后单击“确定”按钮。

  9. 会出现一个提示对话框,表示操作成功。

  10. 关闭另外两个打开的对话框。

第三部分:在Thunderbird中,编辑您的证书颁发机构的根证书,使其用于识别网站、邮件用户和软件制造商。

  1. 按照第二部分的描述,显示证书管理器对话框。

  2. 在证书管理器对话框中,点击“机构”选项卡。

  3. 在根证书列表中,点击您的证书颁发机构的证书以进行选择。

  4. 点击“编辑信任...”按钮,显示“编辑信任设置”对话框。

  5. 勾选三个复选框,使您的证书颁发机构在网站、电子邮件和软件方面得到信任。

  6. 点击“确定”按钮。

  7. 关闭所有打开的对话框。

第四部分:在LibreOffice Writer中,验证证书是否可用于数字签名。

  1. 关闭可能正在运行的所有Writer窗口。

  2. 打开一个已存在的Writer文档(因为只能从保存在磁盘上的文件中查看证书)。

  3. 点击“文件” > “数字签名...”以显示“数字签名”对话框。

  4. 点击“签署文档”按钮,显示“选择证书”对话框。

您的证书将出现在证书列表中。


太好了,刚刚发现在Firefox和Thunderbird中的信任度不一样。 - GUI Junkie
3如何在Libreoffice的选择证书对话框中添加签名? - Akronix
5对我没有起作用。 - Tobi Obadiah
1很遗憾,这个答案中的第3部分第5步对我来说只有两个复选框(邮件和网站),所以似乎没有选项允许外部应用程序再使用该证书了。 - tim_uni

对我来说,Firefox证书路径不起作用(可能是因为证书实际上存储在智能卡读卡器 - 硬件加密狗上)。以下是使其在LibreOffice Writer中可见的步骤:
# Create local NSS database:
sudo apt-get install libnss3-tools
mkdir -p $HOME/.pki/nssdb
certutil -N -d sql:$HOME/.pki/nssdb

# Import the root (signing) certificates if necessary. For example:
certutil -d sql:$HOME/.pki/nssdb -A -t "CT,C,C" -n "InfoNotary CSP Root" -i in-csp-root.cer

# Allow the certificate from smart card (in this case of type OpenSC) to be accessed:
modutil -dbdir sql:$HOME/.pki/nssdb -add "OpenSC" -libfile /usr/lib/onepin-opensc-pkcs11.so -mechanisms FRIENDLY

# Alternatively, for smart cards of type Bit4id use:
modutil -dbdir sql:$HOME/.pki/nssdb -add "Bit4id" -libfile /usr/lib/libbit4ipki.so -mechanisms FRIENDLY

然后在LibreOffice Writer中:菜单工具 > 选项 > 安全 > 证书路径选择目录'~/.pki/nssdb'。

如果您已经安装了Thunderbird,您需要将证书导入到Thunderbird的证书存储中。

1谢谢。我在我的回答中写了一个逐步解释。 - Geoffrey
做得好 - 解释得非常好! - tohuwawohu

另一个选择是使用TinyCA来生成您自己的证书。
如果您的证书在Libreoffice中没有显示,请检查:
Tools => Options => Security => Certificate Path

(Thunderbird是默认的证书存储库):

enter image description here