【问题标题】:How to perform code signing using osslsigncode如何使用 osslsigncode 执行代码签名
【发布时间】:2013-11-18 10:51:45
【问题描述】:

你能帮我弄清楚如何用证书签署我的软件吗?你知道signtool只能在windows机器上工作,但我需要在linux服务器上签名文件。现在系统就这样工作了,文件在 linux 服务器上构建,然后它移动到 win 服务器进行签名,然后再次返回 linux。

我尝试 google 并找到了一种使用osslsigncode 程序签名的新方法。

我现在的问题是如何将证书从 MS 转换为 osslsigncode 格式。 所以现在我做这个步骤 永久有两个文件: cert.crt 和 key.blob 首先我需要将它们转换为 .pfx 格式 我愿意:

openssl rsa -inform MS/PRIVATEKEYBLOB -in key.blob -outform PEM -out key.pem
openssl rsa -in key.pem -outform PVK -pvk-strong -out key.pvk
pvk2pfx -pvk key.pvk -pi 1234 -spc cert.crt -pfx cert.pfx

然后我可以用命令签署我的软件

signtool.exe sign /v /f cert.pfx /p 1234 soft.exe

您能告诉我使用 osslsigncode 程序需要执行哪些转换步骤吗?

【问题讨论】:

    标签: openssl code-signing signtool


    【解决方案1】:

    http://development.adaptris.net/users/lchan/blog/2013/06/07/signing-windows-installers-on-linux/ 为我工作...向原作者致敬。

    如果丢失,相关步骤是:

    要进行签名,您基本上必须将您的密钥从您的密钥库 [...] 导出为 PKCS12/PFX 文件,以便您可以使用 openssl[...] 对其进行转换。

    openssl pkcs12 -in authenticode.pfx -nocerts -nodes -out key.pem
    openssl pkcs12 -in authenticode.pfx -nokeys -nodes -out cert.pem
    openssl rsa -in key.pem -outform DER -out authenticode.key
    openssl crl2pkcs7 -nocrl -certfile cert.pem -outform DER -out authenticode.spc
    osslsigncode -spc authenticode.spc -key authenticode.key -t http://timestamp.verisign.com/scripts/timstamp.dll -in install.exe -out install-signed.exe
    

    【讨论】:

    • 感谢您在此处复制相关步骤。该链接现已失效,但这些命令对我很有价值。
    • 您可以只使用 PFX 进行签名,而无需将 PFX 转换为单独的 DER/PEM 文件。转换为 spc 和 key 文件是一个多余且不必要的步骤。 osslsigncode sign -pkcs12 <pfx-file> -pass <pfx-password> -n "Your Application" -i http://www.yourwebsite.com/ -in yourapp.exe -out yourapp-signed.exe
    • 在撰写本文时,timestamp.verisign.com/scripts/timstamp.dll 似乎无法访问,因此失败
    • @Macindows 这确实发生了 - 我已切换到 http://timestamp.comodoca.com/authenticode
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 2013-07-25
    相关资源
    最近更新 更多