На наших серверах сборки мы используем signtool.exe для подписи наших артефактов.
Одни и те же аргументы передаются в signtool.exe каждый раз, но происходит сбой или время от времени из-за того, что наш сертификат не используется из-за «фильтра закрытого ключа».
Мы использовали этот процесс некоторое время, но мы начали видеть сбои утром 27 марта 2019 года.
Мы запускаем процесс signtool.exe со следующими аргументами:
sign /fd sha256 /f "cert.p12" /p certPass /du hostSiteHere /v /debug /tr timeStampUrl "fileNames"
Технические характеристики
- signtool.exe является из Windows 10 SDK
- серверы сборки размещаются в AWS в качестве экземпляров сервера windows2 ec2
- Дженкинс (v2.1.68) запускает сборки с помощью плагина amazon ec2 (v1.42)
Журналы, в зависимости от того, прошел он или нет:
The following certificates were considered:
Issued to: myCompany, Inc.
Issued by: DigiCert SHA2 Assured ID Code Signing CA
Expires: Wed Oct 30 12:00:00 2019
SHA1 hash: myCertSha1Hash
After EKU filter, 1 certs were left.
After expiry filter, 1 certs were left.
After Private Key filter, 1 certs were left.
The following certificate was selected:
Issued to: myCompany, Inc.
Issued by: DigiCert SHA2 Assured ID Code Signing CA
Expires: Wed Oct 30 12:00:00 2019
SHA1 hash: myCertSha1Hash
The following additional certificates will be attached:
Issued to: DigiCert SHA2 Assured ID Code Signing CA
Issued by: DigiCert Assured ID Root CA
Expires: Sun Oct 22 12:00:00 2028
SHA1 hash: digiCertSigningSha1Hash
Done Adding Additional Store
The following certificates were considered:
Issued to: myCompany, Inc.
Issued by: DigiCert SHA2 Assured ID Code Signing CA
Expires: Wed Oct 30 12:00:00 2019
SHA1 hash: myCertSha1Hash
After EKU filter, 1 certs were left.
After expiry filter, 1 certs were left.
After Private Key filter, 0 certs were left.
No certificates were found that met all the given criteria.
Нечетное поведение на заметку:
- тот же экземпляр ec2 может успешно работать, а затем потерпеть неудачу
- сбой экземпляра ec2 может начать работать, если пользователь отправляет RDP в экземпляр ec2
- один и тот же сертификат, signtool.exe и аргументы передаются каждый раз