1

我正在尝试从源代码构建 qz.io 以使其使用自签名证书。

在此链接上,他们展示了一种从源代码构建并使用新证书对其进行签名的方法:

ant nsis -Dauthcert.use=path/to/override.crt

但是,在这里,他们说nsis用于在 Windows 和 Mac 上构建,我需要运行ant pkgbuild

ant nsis       # <-- Windows installer
ant pkgbuild   # <-- Apple installer
ant makeself   # <-- Linux installer

因此,我尝试运行ant pkgbuild -Dauthcert.use=path/to/override.crt它并创建了一个可以在 OSX 上使用的新包 (.pkg),但是,它没有使用我的自签名证书对文件进行签名。但是,ant nsis工作正常,创建一个.exe用我的自签名证书签名的文件。

我认为该-Dauthcert.use选项特定于nsis.

你们现在在OSX上做这件事的正确方法吗?

4

1 回答 1

0

它没有用我的自签名证书签署文件。

对于有问题的构建脚本authcert.use是软件用于内部许可的证书,而不是用于签署生成的.pkg文件。由于有多个证书在起作用,因此了解它们之间的区别很重要。

签署 Apple 安装程序

如果您想对生成的.pkg文件进行签名,您需要获得一个 Apple Developer ID,特别是一个标记为创建安装程序的 ID。要查看是否已安装,请使用security find-identity -v -p appleID.

  security find-identity -v -p appleID

  1) C50DEA4B92E19A5573C48E8CBFCA17A741FF7BC2 "Developer ID Installer:   ABC Incorporated (P4E8D512CX)"
  2) 43A2EF6B7F9EE536B8FA7FB784E5F81D13BDB5D8 "Developer ID Application: ABC Incorporated (P4E8D512CX)"

您需要的部分在括号中...您可以通过覆盖该值.pkg来签署文件。请注意,从 QZ Tray 2.2.0 开始,两者和ID 都是必需的。ApplicationInstaller

例如

ant pkgbuild -Dapple.packager.signid=P4E8D512CX

这将获取从您的密钥环中调用的 Apple 签名 ID P4E8D512CX,并使用它对.pkg文件进行签名。此值将根据您分配的 Apple Developer ID 更改。

请注意,对于 Windows,该过程略有不同,您需要提供三个值:-Dsigning.alias=...-Dsigning.keystore=...-Dsigning.keypass=...-Dsigning.storepass=...此处提供了示例值,但通常需要.pfx(PKCS#12) 转换为.jks. 如果您希望在创建可执行文件后对其进行签名,这也可以,但它不会应用于任何捆绑的二进制文件,例如启动程序、卸载程序或捆绑的 DLL。

覆盖内部许可文件

您正在使用的应用程序需要颁发的证书(如许可证)才能运行。对于想要颁发自己的证书的用户,这ant pkgbuild -Dauthcert.use=path/to/override.crt是有效的。这将创建一个覆盖内部许可证的桌面安装程序。有关此许可证文件用途的更多信息,请参阅此视频教程:https ://www.youtube.com/watch?v=X72y6ZZTWzE

于 2021-09-30T14:29:20.960 回答