我有一个Java swing应用程序,并为三个平台Window(exe),macOS(.app)和linux(.sh)构建可执行文件。我也有一个.p12文件,需要签署三个平台可执行文件。
我已经通过osslsigncode
在Windows上为exe文件签名,并且可以在exe文件的属性中作为数字签名选项卡进行检查。
现在,我面临的问题是我不知道如何将.p12文件签名到macOS可执行文件(.app)和linux可执行文件(.sh)。
我也感到困惑,我们可以将.p12文件签名到macOS和Linux构建服务器(如Windows数字签名)上的Linux可执行文件吗?
我已经使用Linux构建服务器为三个平台构建可执行文件
我也尝试使用openssl
命令:
openssl rsautl -sign -inkey MyFile.p12 -passin pass:mypass > /path/to/my/sh/file
但出现错误:无法加载私钥
有什么建议吗?
谢谢。
快乐的编码..
答案 0 :(得分:0)
您可以使用此命令从.p12(pfx)中提取私钥
openssl pkcs12 -in file.p12 -nocerts -out key.pem
然后您可以签名文件
openssl rsautl -sign -inkey key.pem -in yourfile -out sigfile
并使用
openssl pkeyutl -verify -pubin -inkey pubkey.pem -sigfile sigfile -in yourfile
进行验证
但您不应使用实际文件,而应签名/验证校验和,因此最好使用
sha512sum yourfile | openssl rsautl -sign -inkey yourkey -out sigfile sha512sum yourfile | openssl pkeyutl -verify -pubin -inkey pubkey.pem -sigfile sigfile