signtool.exe иногда не может использовать сертификат из-за фильтра закрытого ключа - PullRequest
2 голосов
/ 28 марта 2019

На наших серверах сборки мы используем 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)

Журналы, в зависимости от того, прошел он или нет:

  • PASS
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
  • FAIL
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 и аргументы передаются каждый раз
...