签署 Windows EXE 文件

2024-02-14

我有一个EXE http://en.wikipedia.org/wiki/EXE我想要签署该文件,以便 Windows 不会警告最终用户来自“未知发布者”的应用程序。我不是 Windows 开发人员。所讨论的应用程序是从生成屏幕保护程序的应用程序生成的屏幕保护程序。因此,我对文件的生成方式没有影响。

我已经发现我需要一个代码签名 https://en.wikipedia.org/wiki/Code_signing#Trusted-Library_Attribute证书来自CA https://en.wikipedia.org/wiki/Certificate_authority like Verisign https://en.wikipedia.org/wiki/Verisign或 instantssl.com。我不明白的是我需要做什么(如果可能的话)来签署我的 EXE 文件。简单的解释是什么?

梅尔格林的回答让我更进一步,但signtool希望我指定在任何情况下使用什么证书。我可以以某种方式获得免费的代码签名证书来测试这是否对我有用吗?

另请指定哪种证书类型是正确的。大多数网站只提到“代码签名”,并谈论对用户实际编译的应用程序进行签名。我的情况并非如此。


如何签署您的应用程序

Use 微软的签名工具 https://learn.microsoft.com/en-us/windows/win32/seccrypto/signtool签署您的应用程序。

您下载它作为视窗软件开发工具包 https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/。请注意,也可以安装 SignTool 而不安装整个 SDK https://stackoverflow.com/a/52963704/1070129。安装后,您可以从命令行使用 SignTool,如下所示:

signtool sign /a /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 MyFile.exe

这将签署MyFile.exe。使用的命令行选项说明:

  • /a将自动使用有效期最长的证书。如果您没有证书,SignTool 将显示错误。
  • /fd SHA256将使用 SHA-256 摘要算法进行文件签名。建议使用 SHA256,它被认为比默认的 SHA1 摘要算法更安全。
  • /tr http://timestamp.digicert.com为您签名的应用程序添加时间戳。这是极其重要因为这将使签名即使在after证书本身已经过期。的论点/tr选项是时间戳 URL。您可以使用来自以下位置的任何时间戳 URL此免费 RFC 3161 时间戳服务器列表 https://gist.github.com/fd754e402d98430243455713efada710.
  • /td SHA256将使用 SHA-256 摘要算法进行时间戳签名。和以前一样,建议使用 SHA256,并且认为它更安全。

如何以及何时使用自签名证书

如果您想获得可用于以下目的的证书test您签署可执行文件的过程,您可以使用MakeCert https://learn.microsoft.com/en-us/windows/win32/seccrypto/makecert创建自签名证书。

创建自己的证书并使用它来签署可执行文件后,您需要手动将其添加为您的计算机的受信任根 CA,以便UAC https://en.wikipedia.org/wiki/User_Account_Control接受您的自签名证书作为可信来源。请注意,您可以only在您自己的开发机器上执行此操作。通常你可以not在您用户的计算机上执行此操作,因为大多数用户不会接受安装新的根 CA有充分的理由 https://www.computerworld.com/article/3008113/dell-installs-self-signed-root-certificate-on-laptops-endangers-users-privacy.html.

如何摆脱“无法识别的应用程序”警告

即使您的应用程序已签名,您在尝试运行该应用程序时仍可能会看到以下警告消息:

Microsoft Defender SmartScreen 阻止无法识别的应用程序 开始。运行此应用程序可能会使您的电脑面临风险。

如何避免这个警告是一个有点复杂的话题。请参见这个答案 https://stackoverflow.com/a/66582477/1070129全面了解这些 Microsoft SmartScreen 警告以及您可以采取哪些措施以及应该了解哪些信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

签署 Windows EXE 文件 的相关文章

  • 如果Jetty的密钥库中有多个证书,它如何选择?

    我们的系统中有一些代码用于自动将自签名证书生成到密钥库中 然后由 Jetty 使用 如果给定主机的密钥已经存在 那么什么也不会发生 但如果它不存在 我们会生成一个新密钥 如下所示 public void generateKey String
  • python:Windows终端中的unicode,使用的编码?

    我在 Windows 7 终端中使用 Python 解释器 我正在尝试了解 unicode 和编码 I type gt gt gt s gt gt gt s x89 gt gt gt u u gt gt gt u u xeb 问题1 字符串
  • 使用openssl从服务器获取证书

    我正在尝试获取远程服务器的证书 然后可以将其添加到我的密钥库中并在我的 Java 应用程序中使用 一位高级开发人员 正在度假 告诉我我可以运行这个 openssl s client connect host host 9999 获取转储的原
  • Windows 注册表中的 DefaultConnectionSettings 值的格式是什么?

    Windows 注册表项 HKCU Software Microsoft Windows CurrentVersion Internet Settings Connections 包含一个名为的二进制值DefaultConnectionSe
  • Windows 7 VM 上的 Android Studio 虚拟设备不兼容

    我的计算机上有一个 VirtualBox VM 该 VM 运行 Windows 7 64 位 我在该虚拟机上安装了 Android Studio 我只有基本的 Hello World 应用程序 当我尝试运行 AVD 时 我收到以下消息 运行
  • 如何使用 Windows forfiles 命令的完整路径运行命令?

    我正在尝试运行以下命令 forfiles p Schemas m xsd c cmd c C Program Files x86 Microsoft SDKs Windows v10 0A bin NETFX 4 6 1 Tools xsd
  • 从 Get-ChildItem -Path 返回对象数组

    从 powershell 开始 ls R txt将按目录递归列出文件 或者更好 PS gt Get ChildItem Path C Test Name logs anotherfile txt Command txt CreateTest
  • 链接到大地址感知 DLL

    假设我有一个使用 LARGEADDRESSAWARE 链接器标志集构建的 DLL 现在我有一个动态链接到该 DLL 的应用程序 这是否会使我的应用程序具有大型地址意识 如果不是 那么为任何 DLL 设置此标志是否有意义 讨论here htt
  • Windows 控制台“ESC[2J”并没有真正“清除”屏幕

    我知道这类问题经常被问到 但我认为这个问题有点不同 需要被问到 新的 Windows 控制台支持 ANSI VT100 控制代码 ANSI VT100 控制代码 http www termsys demon co uk vtansi htm
  • 关闭时不会调用 SetConsoleCtrlHandler

    我编写了一个在控制台中运行的应用程序 需要在系统关闭或用户注销之前进行快速备份 我的测试应用程序编写一个带有信号的文件 并在手动关闭控制台窗口 单击 X 时工作 但当控制台在关机或注销时关闭时 它不起作用 从我在 MSDN 上读到的内容来看
  • 当工作站锁定然后解锁时,如何防止窗口大小调整?

    我们有一个在多显示器环境中运行的应用程序 用户通常将应用程序对话框分散到多个监视器上 如果用户锁定工作站 然后解锁它 我们的应用程序就会被告知调整大小 我们的用户发现这种行为令人沮丧 因为他们随后花了一些时间恢复以前的布局 我们还不确定是图
  • Windows 中“nice”的等效词

    Windows 中是否有相当于 Unix 命令的命令 nice 我正在专门寻找可以在命令行中使用的东西 并且not任务管理器中的 设置优先级 菜单 我在谷歌上寻找这个的尝试被那些想不出更好形容词的人挫败了 如果您想在启动进程时设置优先级 您
  • Windows 控制台中的 C++ 按键输入

    我目前正在开发各种consoleWindows 中的游戏无法通过常规输入真正运行cin 我怎样才能 以简单的方式仅使用 MSVC 中提供的标准 Windows 库 让程序等待 特定 按键并返回按键 ID 它必须适用于包括箭头键在内的所有按键
  • 如何在Windows Git shell中运行./script.sh?

    也许这很尴尬 但是当我在 Git shell 中工作时 我无法在 Windows 上运行 sh 文件 也许我必须安装一些东西 但我认为 Git 会支持 bash 命令 我知道 Windows 不使用 sh 文件 我正在执行安装步骤游戏结束
  • 当设备位于我的用户目录中时,为什么 Android 模拟器会报告“未知虚拟设备”?

    我安装了所有Android开发先决条件 http developer android com sdk requirements html 我通过 Eclipse 创建了一个虚拟设备 并尝试在该设备中运行 Hello World 示例应用程序
  • 如何将 man 和 zip 添加到 Windows 上的“git bash”安装中

    我在用git bash https git for windows github io 在 Windows 上 即git对于 Windows 通过集成bash 显然它使用的是MINGW MSYS支撑 来自 VonC 的更新 现在使用 msy
  • 为什么 SetCursorPos 将光标位置重置到显示屏的左侧?

    SetCursorPos https learn microsoft com en us windows win32 api winuser nf winuser setcursorpos将光标移动到指定的屏幕坐标 然而 它似乎有一个错误
  • 新的 Windows 应用程序 - 什么语言?

    我们目前正处于开发 Windows 桌面应用程序的前期阶段 但当听到有关 Windows 8 Silverlight WPF Jupiter 的所有最新讨论时 我不知道该相信什么了 现在用WPF启动一个新项目是不是有问题 我应该切换到 Si
  • 代码签名证书选项

    我被分配了为我的公司购买数字证书来签署我们的代码的任务 我们在 Microsoft 领域开发应用程序 主要是 WPF 或基于 Web 我调查了选项 发现 Comodo 价格合理且反应灵敏 我们准备继续通过它们购买证书 但是在注册表单中有各种
  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能

随机推荐

  • 如何让puppeteer浏览器保持在后台运行而不跳转到前台?

    使用时puppeteer通过a抓取一堆网站for loop 每当创建一个新页面时 浏览器就会跳转到前台 这妨碍了我在计算机上做其他事情 即使我设置了以下参数 它仍然不起作用 那么我怎样才能让浏览器安静地运行而不跳到前台并打断我呢 我需要跑进
  • 如何在 mPDF 中设置自定义页面尺寸?

    我需要一些有关 mPDF 的帮助 我想设置我的自定义页面尺寸 确切地说 宽度 49 毫米 高度 200 毫米 但我找不到解决方案 我找到了 mPDF 手册 http mpdf1 com manual index php tid 184 ht
  • Pyside安装错误

    我有 32 位 Windows 7 操作系统 今天 我尝试下载 PySide 安装程序 但是 在我尝试运行下载的文件后 出现以下错误 PySide 安装程序无效或损坏 为什么我会得到这个 我最近开始了一门关于使用 Qt 框架使用 Pytho
  • Matplotlib 添加默认水印

    我在用着matplotlib对于工作和公司来说 政策是在我们制作的每个图上都包含水印 有没有办法设置matplotlib默认情况下执行此操作 我目前正在通过每个Axes对象到辅助函数中 该函数在左下角添加水印 import matplotl
  • 如何隐藏/显示UIimageview?

    void viewDidAppear BOOL animated super viewDidAppear animated CGRect viewRect CGRectMake 250 100 30 30 as UIImageView al
  • “政党模式”背后的原则和好处是什么?

    派对模型 是关系数据库设计的一种 模式 它至少有一部分涉及找到许多实体 例如客户 员工 合作伙伴等 之间的共性 并将其分解到一些更 抽象 的数据库表中 我想了解您对以下问题的想法 政党模式背后的核心原则和动力是什么 它规定您对数据模型做什么
  • hadoop pagerank运行时出现错误

    我已经在我的 vmware 上安装了 hadoop 并设计了我的 jar 文件 pagerank 运行以下命令 hadoop jar PageRank 1 0 0 jar PageRankDriver init 输入输出 2 出现以下错误
  • R 如何在另一个函数中将函数作为字符串传递

    对于这个小难题的任何帮助将不胜感激 我正在尝试向tq transmute函数从tidyquant包裹 参数的值是一个函数 但是我想将其作为字符串传递 在下面示例的范围内 我将通过 Shiny 传递它 selectInput 我已经尝试了所有
  • 如何检测地址/坐标中是否可以使用 Google 街景

    我正在制作一个使用 Google 街景图像 API 的应用程序 我可以毫无问题地根据地址 坐标获取街景图像 但是 我想检测特定地址是否有可用的街景图像 以便为没有街景图像的地址显示不同的行为 到目前为止我唯一的想法是读取返回图像的像素并检测
  • java: R 无法解析为变量

    我知道这个问题以前已经被问过 但我对此无能为力 我刚刚创建了一个新项目并收到此错误 当然 R java 文件没有被生成 我正在使用 JRE7 android 4 2 2 package com example myfirstapp impo
  • TensorFlow 中张量值的条件分配

    我想复制以下内容numpy代码在tensorflow 例如 我想分配一个0到先前值为的所有张量索引1 a np array 1 2 3 1 a a 1 0 a should be 0 2 3 0 如果我写类似的代码tensorflow我收到
  • 如何在Windows服务器上运行solr使其自动启动?

    如何在 Windows 服务器上运行 solr 使其自动启动 我运行它 java jar start jar 但我需要服务器自动执行此操作 使用您需要的命令创建一个批处理文件并在启动时运行它 一些these http windowsxp m
  • 场景生成器中的自定义控件 ClassNotFoundException

    我通过扩展现有控件创建了一个新控件 并且我想在我的 JavaFX 场景中使用这个新控件 我希望能够使用场景生成器编辑场景 但是将新控件添加到 FXML 文件后 我遇到了ClassNotFoundException打开场景生成器时 例如 这是
  • 为什么这段代码不会抛出 StackOverflow 异常

    在 clojure v1 6 0 中 这段代码会永远运行并消耗 100 的一个核心 defn average x y x y 2 defn improve guess x average guess x guess defn sqrt it
  • Spotify API - 在 Google Apps 脚本中检索有效访问令牌

    以下是 Spotify API 的文档 我使用的是隐式授权流程 https beta developer spotify com documentation general guides authorization guide implic
  • IntelliJ 中的 Cucumber.js 调试

    IntelliJ 有一个 Cucumber js 插件 这假设可以在 IDE 内启用运行和调试 cucumber js 的运行配置有效 但调试模式已停用 无法单击 调试 按钮 还有其他人有同样的问题并设法解决它吗 调试对我来说非常重要 谢谢
  • Python3 TypeError:列表索引必须是整数或切片,而不是 str

    我的任务是获取字符串 AAAABBBCCDAABBB 放入这样的列表中 A B C D A B 我现在已经为此工作了 2 个小时 但无法找到解决方案 到目前为止 这是我的代码 list string AAAABBBCCDAABBB i 1
  • 阅读 Facebook 中的消息

    我一直在尝试阅读来自特定用户 朋友 的消息 我在图形 API 中找不到有关查询 Facebook 消息中的消息或线程的正确文档 谁能帮帮我吗 您只能为使用您的应用程序的用户阅读消息 而不能为他的朋友阅读消息 这是一件好事 要为当前用户执行此
  • 为什么 JSF 将 UI 组件的状态保存在服务器上?

    JSF 在服务器端保存 UI 组件的状态到什么时间以及 UI 组件的状态信息具体何时被删除从服务器内存 当应用程序上的登录用户浏览页面时 组件的状态是否会继续在服务器上累积 我不明白在服务器上保持 UI 组件状态有什么好处 直接将验证 转换
  • 签署 Windows EXE 文件

    我有一个EXE http en wikipedia org wiki EXE我想要签署该文件 以便 Windows 不会警告最终用户来自 未知发布者 的应用程序 我不是 Windows 开发人员 所讨论的应用程序是从生成屏幕保护程序的应用程