如何为macos应用程序包和linux可执行文件签名

如何为macos应用程序包和linux可执行文件签名,linux,digital-signature,Linux,Digital Signature,我有一个JavaSwing应用程序,并为三个平台Window(exe)、macOS(.app)和linux(.sh)构建可执行文件。我还有一个.p12文件,需要为三个平台的可执行文件签名 我已通过osslsigncode在windows上为exe文件签名,并且可以在exe文件的属性中检查“作为数字签名”选项卡 现在,我面临的问题是,我不知道如何将.p12文件签名到macOS可执行文件(.app)和linux可执行文件(.sh) 我还搞不清楚,我们可以像windows数字签名一样,在Linux构建

我有一个JavaSwing应用程序,并为三个平台Window(exe)、macOS(.app)和linux(.sh)构建可执行文件。我还有一个.p12文件,需要为三个平台的可执行文件签名

我已通过
osslsigncode
在windows上为exe文件签名,并且可以在exe文件的属性中检查“作为数字签名”选项卡

现在,我面临的问题是,我不知道如何将.p12文件签名到macOS可执行文件(.app)和linux可执行文件(.sh)

我还搞不清楚,我们可以像windows数字签名一样,在Linux构建服务器上将.p12文件签名到macOS和Linux可执行文件吗

我使用LinuxBuildServer为三个平台构建了可执行文件

我还尝试使用
openssl
命令:

openssl rsautl -sign -inkey MyFile.p12 -passin pass:mypass > /path/to/my/sh/file
但出现错误:无法加载私钥

有什么建议吗

谢谢大家


快乐编码..

您可以使用此命令从.p12(pfx)中提取私钥

openssl pkcs12 -in file.p12 -nocerts -out key.pem openssl pkcs12-in file.p12-nocerts-out key.pem 然后,您可以在文件中签名openssl rsautl-sign-inkey key.pem-in-yourfile-out-sigfile

openssl rsautl -sign -inkey key.pem -in yourfile -out sigfile 并在您的文件中使用openssl pkeyutl-verify-pubin-inkey pubkey.pem-sigfile-sigfile-sigfile进行验证

openssl pkeyutl -verify -pubin -inkey pubkey.pem -sigfile sigfile -in yourfile 但是,您不应该使用实际的文件,而应该对校验和进行签名/验证,因此最好使用sha512sum yourfile | openssl rsautl-sign-inkey your key-out sigfile sha512sum yourfile | openssl rsautl -sign -inkey yourkey -out sigfile sha512sum yourfile | openssl pkeyutl -verify -pubin -inkey pubkey.pem -sigfile sigfile
sha512sum yourfile | openssl pkeyutl-verify-pubin-inkey pubkey.pem-sigfile sigfile

我只有这个证书文件的.p12文件和密码。我需要的是用.p12文件将此文件签名到各个平台的可执行文件,并将其作为已识别开发人员的签名。在您的建议命令中,我看到有三个参数:
yourkey
:是.pem文件吗?我需要将p12转换为.pem文件吗<代码>你的文件:我的可执行文件<代码>sigfile:我的p12文件?<…>。。。不是参数,它的重定向,命令将“yourfile”(您要签名的内容)作为输入,并输出“sigfile”(签名文件),请参见我的编辑