3

我处于一个非常棘手的情况,我会尽力解释它。我将以简洁的编号步骤写出我的问题,最后,我会将其归结为一个或几个明确的问题。

  1. 我用python写了一个程序。(未使用其他语言)

  2. 然后我使用 pyinstaller 将其转换为 .exe,这样我就可以与我的朋友分享它,而无需他们安装 python 或任何其他外部库。

  3. 当我的朋友们试图下载这个 exe 文件时,他们的 Windows Defender 和其他防病毒软件出现了,并且它不允许他们运行该程序。

  4. 我做了一些研究,得知我的 exe 没有添加发布者,因此,Windows Defender 阻止了用户打开文件。

  5. 要添加发布者,我了解到我需要对其进行数字签名并制作证书,因此我安装了一个名为 DigiCert 的程序,它可以将证书添加到 exe。

这就是问题所在,我不知道如何免费为我的程序制作代码签名证书。


所以为了浓缩所有这些,我的问题/问题是:

A)问题实际上是关于我的 exe 没有发布者的事实吗?

B)如果是这样,我如何创建一个代码签名证书来添加一个?


我希望你能理解这个问题,如果你有任何意见或回应,我将不胜感激。

非常感谢

4

1 回答 1

1

默认情况下,您创建的应用程序没有签名证书。如果你想签名,你需要有一个有效的签名并用它来签署你的应用程序。您可以使用signtool等官方工具对文件进行签名。

另一种方法是创建一个自签名证书并要求用户安装它,因此您的可执行文件对该用户有效。此外,您可以在应用程序的安装向导中自动安装证书。

PS 有时可以绕过 Windows Defender 的警告。主要原因是当使用 PyInstaller 创建应用程序时,它会使用默认的预构建引导加载程序,这可能会导致警告。所以尝试重建引导加载程序并重新创建您的应用程序。

于 2020-08-16T07:01:18.350 回答