特定の 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 + osslsigncode
issue のように見えますが、正確にはわかりません。
また、まったく同じ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