如何为exe程序制作代码签名的证书?

问题描述

我处在一个非常棘手的情况下,我将尽我所能解释。我将以简明扼要的步骤写下问题,最后将其简化为一个或几个明确的问题。

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

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

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

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

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

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


因此,为了简化所有这些,我的问题是:

A)实际上是我的exe没有发行者这一问题吗?

B)如果是,我如何创建一个代码签名的证书以添加一个


希望您能理解该问题,并且希望您提出任何意见或答复。

非常感谢

解决方法

默认情况下,您正在创建的应用程序没有签名证书。如果要签名,则需要具有有效的签名并使用它签名您的应用程序。您可以使用signtool之类的官方工具对文件进行签名。

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

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