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

Dov*_*Dov 8 openoffice.org signature certificates

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

sudo apt install libreoffice
Run Code Online (Sandbox Code Playgroud)

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

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

所以我使用这个网站的说明创建了一个证书:https : //websiteforstudents.com/self-signed-certificates-ubuntu-17-04-17-10/ 这是我写的shell脚本,所以我不会忘记步骤:

sudo apt install libreoffice
Run Code Online (Sandbox Code Playgroud)

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

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

#! /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.*
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

我可以单击 cert 目录中的证书,但无法单击打开按钮。

我怎样才能让文字处理器找到我在 ~/cert 中创建的证书,或者我用来创建它的步骤有什么问题?

Dov*_*Dov 1

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

我正在使用商业产品(Master PDF 5),它是免费提供的,但带有水印的pdf。我并不兴奋,但现在它已经完成了工作。


小智 1

经过几个小时的挫折后,我终于开始工作了。

\n

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

\n

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

\n
openssl pkcs12 -export -in $name.crt -inkey $name.key -name "Human readable name" -out $name.p12\n
Run Code Online (Sandbox Code Playgroud)\n

更改"Human readable name"为您希望看到的内容,稍后将对此进行描述。

\n

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

\n

要使您的密钥可供 OpenOffice 使用,您需要将其安装在某个位置。您不必在 Firefox 中安装它;事实上,我没有,因为我不想让我的私钥靠近我的网络浏览器。

\n

反而:

\n
    \n
  • 我创建了一个新目录:

    \n

    mkdir ~/.ca-cert

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

    \n

    certutil -N -d ~/.ca-cert

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

    \n

    pk12util -i $name.p12 -d ~/.ca-cert

    \n
  • \n
\n

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

\n

然后,

\n
    \n
  • 在 OpenOffice 中,在“工具”>“选项”>“OpenOffice”>“安全性”下,您将找到“证书路径”设置。

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

    \n
  • \n
\n

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

\n
    \n
  • 右上角的“签署文档”按钮似乎没什么用。

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

    \n
  • \n
  • 您之前安装的那个应该会显示在"Human readable name"您上面指定的下并可用。

    \n
  • \n
\n

我无法让 atril 或 qpdfview 显示 PDF 已签名,但 okular 做到了。

\n

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

\n