11

Aynı dosyaya uygulamak istediğim iki kod imzalama sertifikam var (bir SHA-1, bir SHA-256). Ben ikinci komutundan damgası URL'yi kaldırırsanızBir zaman damgasıyla doğru bir ikili işaretleme kodu nasıl yapılır?

Done Adding Additional Store 
SignTool Error: SignedCode::Sign returned error: 0x80070057 
     The parameter is incorrect. 
SignTool Error: An error occurred while attempting to sign: my_app_here.exe 

, imza başarıyla tamamlar: Ben SHA-256 sertifika eklemek için çalıştı, ama bu başarısız: Bu hata ile başarısız

:: Signs with the SHA-1 certificate 
signtool sign /sha1 8f52fa9db30525dfabb35b08bd1966693a30eccf /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe 
:: Signs with the SHA-2 certificate 
signtool sign /sha1 8b0026ecbe5bf245993b26e164f02e1313579e47 /as /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe 

ancak SHA-2 imzasının zaman damgası yok. (İlk imzanın üzerinde bir zaman damgası koyup koymadığı hiç bir etkisi yoktur)

Buradaki amaç, bir uygulamayı destekleyen bir işletim sistemi üzerindeyse, uygulamanın daha güçlü bir sertifika ile uygulamayı doğrulamasına izin vermektir; Daha güçlü sertifikaları desteklemeyen işletim sistemlerinde doğrulama (Vista, XP).

Bu tür bir şey mümkün mü?

+0

Eh, sevindim bu benim muhtaç yalnız değilim bilmek ... – vcsjones

+0

yerine '/ t/td sha256/tr ...' 'denedin mi ... ikinci imza için? –

cevap

12

SHA-2 Authenticode imzalaması bir RFC 3161 zaman damgası sunucusu gerektirir. Timestamp.verisign.com URL bunun için çalışmaz.

Symantec/Verisign için RFC 3161 URL:

Hala eski http://timestamp.geotrust.com/tsa URL'yi kullanıyorsunuz ve (Nisan 2017) başarısız olursa
http://sha256timestamp.ws.symantec.com/sha256/timestamp 

, yukarıdaki birine güncellemek gerekir. Verisign gibi GeoTrust artık Symantec'in bir parçası.

Kaynak:

https://knowledge.verisign.com/support/code-signing-support/index?page=content&id=SO5820

+0

"Neden işe yaramadığını" açıkladığınız için teşekkür ederim, okuduğum diğer cevaplar bu bölümü özlüyor. Çalıştırmak için '/ t http: // timestamp.verisign.com/scripts/timestamp.dll dosyasını'/tr http: // timestamp.geotrust.com/tsa' ile değiştirin. –

+1

GeoTrust sunucusu, zaman damgası için SHA1 özetini kullanır ve daha da kötüsü, sertifika zinciri bir MD5 özeti olan bir kök sertifikasında sona erer. Zaman damgası için SHA256 özetini isterseniz URL olarak http://timestamp.globalsign.com/?signature=sha2 kullanın (/ td SHA256 belirtmek de zarar vermez). –

+4

RFC 3161 zaman damgası URL'sine sahip SHA-256, http://sha256timestamp.ws.symantec.com/sha256/timestamp şeklindedir. –