在 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 可以。
是的,虽然很痛苦,但最终还是成功了。