标签: code-signing

使用 osslsigncode 进行代码签名 - 发行商未知

在尝试自动编译和签署特定的基于 NSIS 的二进制文件时,我遇到了一些奇怪的行为。即,makensis运行 来wine编译可执行文件,然后osslsigncode使用 来对二进制文件进行签名。

可执行文件似乎构建得很好,因为它可以在 Windows 系统上运行,但是签名存在问题(缺乏更好的词)。由于代码签名证书采用 PKCS#12 格式,因此使用的命令如下所示

osslsigncode sign -pkcs12 <pkcs12-file> -pass <pkcs12-password> \ -n "Your Application" -i http://www.yourwebsite.com/ \ -in yourapp.exe -out yourapp-signed.exe

我从 osslsigncode 收到“成功”消息,就好像签名顺利一样,但是当二进制文件在 Windows 上运行时(本例中为 Win 7),UAC 表示:

出版商:未知

奇怪的是,当我打开从原始.p12文件中提取的证书并查看其信息时,Windows 随后能够识别发布者和数字签名,就好像它以某种方式意识到了证书路径......?

任何意见,将不胜感激。

使用的编辑1
osslsigncode版本:1.5.2和1.7.1

编辑2
为了进行比较,我尝试使用 进行签名SignTool,显然它的工作没有任何问题。所以这看起来像证书+osslsigncode问题,但我不知道它到底是什么。

我还尝试osslsigncode使用另一个证书使用完全相同的 EXE,并且让事情变得更有趣,它起作用了......(我注意到这两个证书的认证路径不同)。

一些证书详细信息:

1)非工作证书
版本:V3
公钥:RSA 2048 位
签名哈希算法:sha1
签名算法:sha1RSA
认证路径:USERTrust -> Comodo Code Signing CA 2 -> …

openssl nsis code-signing signtool

3
推荐指数
1
解决办法
2669
查看次数

CAB 文件如何成为 PE 文件?

OSR在其博客上发布了与 Microsoft 人员的问答环节。主题是与早期 Windows 版本相比,Windows 10 驱动程序签名要求的变化。

\n\n

微软项目经理 James Murray 在一份声明中表示(粗体部分):

\n\n
\n

Peter:新的驱动程序签名过程表明您必须构建一个 CAB 文件来上传进行签名,然后使用您的 EV 证书对该 CAB 文件进行签名。为什么是 CAB 文件(而不是 ZIP\n 存档等常见文件)?如何构建 CAB 文件?是否有特定的流程或工具可供使用?

\n\n

James: 选择CAB是因为CAB本身就是PE文件。这在一定程度上简化了签名过程,因为signtool.exe具有\xe2\x80\x9cnative\xe2\x80\x9d支持。如果\n我们选择了ZIP存档(注意,我们\xe2\x80\x99d仍然喜欢移动\n方向),我们将需要提供\n单独的签名机制。类似于 HLK studio,一个具有签名 ZIP 或 OPC 功能的小工具。

\n
\n\n

这让我很惊讶。我知道很多 PE/COFF 详细信息,但从来没有印象过 CAB 文件适合其中。它似乎也与包含 CAB 的自解压可执行文件无关。

\n\n

我必须在十六进制编辑器中打开一个 CAB 文件才能亲自查看它,但不知何故,我无法看出该声明在何种意义上是正确的。

\n\n

谁能提供有关 CAB 文件如何/为什么PE 文件的详细信息?

\n

cab code-signing portable-executable

3
推荐指数
1
解决办法
533
查看次数

使用 Install4J 使用 EV-Certificate 签署可执行文件

我们公司从GlobalSign订购了 EV 证书。

之前我们有一个可以在 Install4J 中使用的 p12 文件形式的普通代码签名证书。

现在,有了新证书,我们就没有证书文件了,只有一个 USB 令牌。

是否有内置方法可以使用 USB 令牌来签署可执行文件/jar?或者我是否需要使用媒体向导的“可执行处理”步骤,如此处提到

也许有一种方法可以从一台机器(如 macos)上签署所有安装程序(win、mac、linux)?

java code-signing signtool install4j

3
推荐指数
1
解决办法
1090
查看次数

如何正确设计 macOS 屏幕保护程序?

我正在尝试对我的 macOS 屏幕保护程序项目进行协同设计,以消除“身份不明的开发人员”警告消息。苹果的文档和苹果论坛上的这个人都说你应该使用“开发者ID应用程序”签名证书来做到这一点。但这似乎对我不起作用。

当我按照Apple 关于如何测试正确签名的说明进行操作时,我得到的响应如下:

Screensaver.saver: rejected (the code is valid but does not seem to be an app)
Run Code Online (Sandbox Code Playgroud)

我的签名设置如下所示:

在此输入图像描述

我不确定此时我还应该尝试什么。我主要担心未来 Mac 应用程序必须经过签名/公证的传言,这对屏幕保护程序意味着什么?

macos xcode code-signing screensaver

3
推荐指数
1
解决办法
886
查看次数

无法创建另一个分发证书,已达到可用分发证书的最大数量

当我使用此命令生成 iOS 分发证书时:

fastlane match adhoc
Run Code Online (Sandbox Code Playgroud)

显示此错误:

[!] Could not create another Distribution certificate, reached the maximum number of available Distribution certificates.
Run Code Online (Sandbox Code Playgroud)

我在 GitHub 上检查了我的证书存储库,现在只包含开发证书。 在此输入图像描述

为什么我无法生成分发证书?证书只能在一种环境下使用吗?如何让旧的开发证书失效?我应该做什么才能让它发挥作用?但现在我重新调用开发证书仍然显示此错误:

在此输入图像描述

只有一张开发证书还告诉我:Could not create another Development certificate, reached the maximum number of available Development certificates

code-signing ios

3
推荐指数
1
解决办法
1224
查看次数

Mac M1 Silicon 上的 Apache 将不会加载 xdebug.so - “代码签名对于在进程中使用无效”

我正在设置一台新的 MacBook(Monterey 12.2.1 芯片 Apple M1 Pro),并使用自制程序安装了 PHP 7.4。我将 PHP 配置为作为 MacOS (Apache/2.4.51) 附带的 Apache2 服务器的模块运行。我立即遇到了麻烦,因为在我对其进行代码签名之前,Gatekeeper 不允许我将 php 作为自制程序中的 apache 模块运行。我对它进行了协同设计:

codesign --sign "Mike Andersen" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so

之后 PHP 就完美运行了。然后我用 PECL 安装了 xdebug: arch -x86_64 sudo pecl install xdebug

当我从命令行检查它时,一切看起来都正确:

php -v
PHP 7.4.28 (cli) (built: Feb 28 2022 07:33:39) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.28, Copyright (c), by Zend Technologies
    with Xdebug v3.1.3, Copyright …
Run Code Online (Sandbox Code Playgroud)

php code-signing apache2.4 xdebug-3 macos-monterey

3
推荐指数
1
解决办法
1816
查看次数

使用 cmake + cpack 构建时如何对 Windows 二进制文件和 NSIS 安装程序进行签名

我正在构建一个 NSIS 安装程序,其中包括一个共享库和一组使用该库的工具。我需要对所有内容进行签名,以便用户可以安装它而不会收到来自 Windows 的可怕警告。

在我对这个问题及其变体的所有搜索中,我只能找到一些答案,甚至这些答案也不完整。例如,“您必须使用自定义的构建后命令”,但没有详细信息。另外,“因为 NSIS 在编译签名期间构建卸载可执行文件,所以安装程序很复杂”,它指向一个 NSIS url,解释直接使用 NSIS 时的过程。在该页面的顶部,它说版本 3.08 有一个新uninstfinalize命令,该命令废弃了此处描述的过程。但没有说明如何使用它。

nsis code-signing cmake cpack

3
推荐指数
1
解决办法
1351
查看次数

发布 iOS 应用程序时出现无效签名错误

我正在尝试将应用程序的新版本上传到 App Store,但收到此错误:

签名无效。代码无法满足指定的代码要求。路径 [MyApp.app/MyApp] 处的文件未正确签名。确保您使用分发证书而不是临时证书或开发证书签署您的应用程序。验证 Xcode 中的代码签名设置在目标级别是否正确(覆盖项目级别的任何值)。此外,请确保您上传的包是使用 Xcode 中的 Release 目标而不是 Simulator 目标构建的。如果您确定代码签名设置正确,请在 Xcode 中选择“Clean All”,删除 Finder 中的“build”目录,然后重建您的发布目标。欲了解更多信息,请参阅 https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html(ID:3a7649b2-33eb-4c70-90a4-b3c87e5e699c

有人对如何解决这个问题有一些想法吗?

publish code-signing ios

3
推荐指数
1
解决办法
2719
查看次数

有人用ClickOnce使用GoDaddy的代码签名证书

根据GoDaddy的FAQ,他们支持Microsoft的SignTool,但没有提到mage.exe.Mage.exe用于签署应用程序,但我无法弄清楚mage.exe是否使用SignTool.如果有人使用GoDaddy的ClickOnce代码签名证书,我们将非常感谢您的简短确认.

clickonce code-signing certificate

2
推荐指数
1
解决办法
2624
查看次数

Mac app store帮助工具Sandboxing

我的应用程序包含两个可执行文件

  • 主app可执行文件
  • 用于处理某些文件的小型控制台应用程序,此可执行文件位于Resources文件夹中(无需root权限)

问题是我不知道如何将这个应用程序提交到appstore,我得到了苹果的以下回复

签名无效 - 路径appname.app上的主应用程序包appname已签名但签名无效.从编码签名报告了以下错误:密码资源丢失或无效在架构中:i386

如果我删除帮助应用程序,它会绕过此错误,但应用程序将无法正常工作.任何人都知道如何嵌入帮助应用程序并将其签名到appstore的好方法或示例?

Apple文档对此并不清楚.

code-signing helpers app-store monomac appstore-sandbox

2
推荐指数
1
解决办法
1361
查看次数