如何在 Ubuntu 下的 OpenOffice 中对文档进行数字签名?

如何在 Ubuntu 下的 OpenOffice 中对文档进行数字签名?

在 Ubuntu 19.04 上,Libreoffice 似乎在那里,但是当我点击时,所有应用程序似乎都丢失了(例如文字处理器和电子表格)。所以我首先安装了 OpenOffice。然后我发现我也可以安装 Libreoffice:

sudo apt install libreoffice

所以我现在可以验证两者都有同样的问题。

Openoffice 和 Libreoffice 都有一个选项,声称对文档进行数字签名。

因此我按照此站点的说明创建了一个证书:https://websiteforstudents.com/self-signed-certificates-ubuntu-17-04-17-10/ 下面是我编写的执行此操作的 shell 脚本,这样我就不会忘记这些步骤:

#! /bin/bash
# see https://websiteforstudents.com/self-signed-certificates-ubuntu-17-04-17-10/

name=dbk
openssl genrsa -aes128 -out $name.key 2048 #generate a key
#best to generate without a passphrase, so next command removes it
openssl rsa -in $name.key -out $name.key

# create a certificate signing request. This one is good for a year
days=365
openssl req -new -days $days -key $name.key -out $name.csr

openssl x509 -in $name.csr -out $name.crt -req -signkey $name.key -days $days

#make it readable only to you, to protect it
chmod 400 $name.*

OpenOffice 仍然找不到证书,也没有提供任何方法来选择目录。在 openoffice 的 wiki 中,我发现了一个页面,其中声称有 4 种方法可以选择 OpenOffice 将查找的目录: https://wiki.openoffice.org/wiki/How_to_use_digital_Signatures

其中一种方法是设置环境变量:

export MOZILLA_CERTIFICATE_FOLDER=~/cert

这也不起作用。在 Libreoffice 中,我可以看到启动证书管理器的选项。单击后,我得到了以下窗口。

在此处输入图片描述

我可以点击证书目录中的证书,但打开按钮不可点击。

我如何让文字处理器找到我在 ~/cert 中创建的证书,或者我创建该证书的步骤是否存在问题?

答案1

到目前为止,我还没有找到任何在 OpenOffice 或 LibreOffice 下进行数字签名的解决方案。这真是太糟糕了,因为这些开源产品很棒,但对这个问题没有任何支持。

我正在使用一款商业产品(Master PDF 5),它是免费的,但 PDF 有水印。我不太满意,但目前它能完成工作。

答案2

经过几个小时的折腾,我终于让它工作了。

创建密钥对的步骤看起来很完整;我还发现这个建议有帮助,尽管我最终不得不降级到 4096 位 RS A 密钥 - 我无法让基于 ED25519 的密钥工作。

如果您想使用您的证书签署文件,您需要将其与您的私钥结合起来:

openssl pkcs12 -export -in $name.crt -inkey $name.key -name "Human readable name" -out $name.p12

更改"Human readable name"为您希望在后面看到的任何描述。

如果您查看 Firefox 证书,您会在“权威机构”选项卡下看到大量的证书,但是它们都不能用于签署文件,因为它们只包含公钥,即它们用于验证其他人签署的文件。

要使你的密钥可用于 OpenOffice,你需要将它安装在某个地方。你不必将它安装在 Firefox 中;事实上,我没有这样做,因为我不想将我的私钥放在任何靠近 Web 浏览器的地方。

反而:

  • 我创建了一个新目录:

    mkdir ~/.ca-cert

  • 然后在那里创建一个新的证书数据库:

    certutil -N -d ~/.ca-cert

  • 并使用以下命令安装密钥对:

    pk12util -i $名称.p12 -d ~/.ca-cert

据推测,我本可以将其用作~/.mozilla/firefox/(randomDigits).default目录,但由于上述原因,我没有这样做。

然后,

  • 在 OpenOffice 中,工具 > 选项 > OpenOffice > 安全,你会发现一个证书路径环境。

  • 在该对话框中,单击选择 NSS 路径并添加~/.ca-cert。在单击之前,请确保已选中新添加的路径的单选按钮好的

我无法得到任何回应文件 > 数字签名 > 数字签名..., 但文件 > 数字签名 > 签署现有 PDF...弹出一个打开文件对话框,允许我打开 PDF。

  • 签署文件右上角的按钮似乎毫无用处。

  • 相反,你必须文件 > 导出为 > 导出为 PDF...保存签名版本;在数字签名选项卡PDF 选项对话框中,您可以选择要签名的证书。

  • 您先前安装的那个应该会显示出来并可用,位于"Human readable name"您上面指定的版本下。

我无法让 atril 或 qpdfview 显示 PDF 已签名,但 okular 可以。

是的,虽然很痛苦,但最终还是成功了。

相关内容