2

特定の NSIS ベースのバイナリのコンパイルと署名を自動化しようとしたときに、少し奇妙な動作に遭遇しました。つまり、makensis実行wine可能ファイルをコンパイルするために実行され、その後osslsigncodeバイナリに署名するために使用されます。

Executable は 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 から "Succeeded" メッセージが表示されますが、署名が正常に行われたかのように見えますが、バイナリが Windows (この場合は Win 7) で実行されている場合、UAC は次のように述べています。

発売元:不明

奇妙なことに、元のファイルから抽出した証明書を開いてその.p12情報を表示すると、Windows は発行者とデジタル署名を認識できました。

アドバイスをいただければ幸いです。

EDIT 1
osslsigncode 使用バージョン: 1.5.2 および 1.7.1

EDIT 2
比較のために、で署名してみましたがSignTool、どうやら問題なく動作するようです。これは cert + osslsigncodeissue のように見えますが、正確にはわかりません。

また、まったく同じEXEを別の証明書で試しosslsigncodeてみましたが、さらに興味深いことに、うまくいきました...(2つの証明書の証明書パスが異なることに気付きました)。

いくつかの証明書の詳細:

1)非稼働証明書
バージョン: V3
公開鍵: RSA 2048 ビット
署名ハッシュ アルゴリズム: sha1
署名アルゴリズム: sha1RSA
証明書パス: USERTrust -> Comodo Code Signing CA 2 -> NonWorkingCert

2)有効な証明
バージョン: V3
公開鍵: RSA 2048 ビット
署名ハッシュ アルゴリズム: sha1
署名アルゴリズム: sha1RSA
証明書パス: USERTrust -> UTN-UserFirst-Object -> Comodo Code Signing CA 2 -> WorkingCert

4

1 に答える 1