Подписание кода сборок Windows с помощью SignTool и AWS Cloud HSM

29 апр. 2025 г.

Подписание кода сборок Windows с помощью SignTool и AWS Cloud HSM

Установите необходимые условия: 

Чтобы использовать Microsoft SignTool с AWS CloudHSM, необходимо следующее: 

  • Клиентские экземпляры Amazon EC2 под управлением операционной системы Windows. 

  • Учетная запись на GCC для получения сертификата подписи кода. 

  • Активный кластер AWS CloudHSM в том же виртуальном публичном облаке (VPC), что и ваш экземпляр EC2. Кластер должен содержать как минимум один HSM. 

  • Криптопользователь (CU) для владения и управления ключами в кластере AWS CloudHSM. 

  • Неподписанный файл или исполняемый файл. 

  • Комплект средств разработки программного обеспечения (SDK) для Microsoft Windows. 

  • Клиент AWS CloudHSM в соответствии с совместимостью с ОС. 

Чтобы настроить предварительные условия для использования AWS CloudHSM с Windows SignTool, выполните следующие действия. 

  • Чтобы запустить экземпляр Windows EC2 и кластер AWS CloudHSM, следуйте инструкциям, приведенным в разделе "Начало работы" этого руководства. 

Исполняемый файл SignTool является частью функции установки Windows SDK Signing Tools for Desktop Apps. Вы можете не устанавливать другие функции, если они вам не нужны. 

Установите и настройте клиентский SDK3 AWS CloudHSM на экземплярах Windows: 
Следуйте инструкциям, описанным в документе: Downloads for AWS CloudHSM Client SDK - AWS CloudHSM 
 
После установки клиента и SDK для MS Windows создайте и активируйте кластер: 

  1. Откройте консоль AWS CloudHSM по адресу https://console.aws.amazon.com/cloudhsm/home. 

  2. На панели навигации используйте селектор регионов, чтобы выбрать один из регионов AWS в которых в настоящее время поддерживается AWS CloudHSM.

  3. Выберите Создать кластер. 

  4. В разделе Конфигурация кластера выполните следующие действия: 



    A. Для VPC выберите VPC, созданный в разделе Создание виртуального частного облака (VPC)
    B. В разделе Зона(ы) доступности рядом с каждой зоной доступности выберите созданную частную подсеть. Выберите Далее. 
    C. Укажите, как долго служба должна сохранять резервные копии. 

  5. Выберите Далее. 

  6. (Необязательно) Введите ключ метки и необязательное значение метки. Чтобы добавить в кластер более одной метки, выберите Добавить метку. 

  7. Нажмите кнопку Далее. 

  8. Просмотрите конфигурацию кластера, а затем выберите Создать кластер. 

  9. Создание кластера займет несколько минут, после создания кластера он будет находиться в неинициализированном состоянии. 

  10. Выберите радиокнопку рядом с идентификатором кластера и выберите инициализировать. Инициализация займет до 10 минут. 

  11. Чтобы инициализировать кластер, необходимо сначала создать HSM в кластере. Выберите зону доступности для создания HSM. 



    После выбора зоны доступности нажмите кнопку создать. 

  12. На экране появится следующее изображение: 

  13.  После завершения инициализации он попросит вас загрузить сертификаты. 



    Загрузите кластерный CSR и нажмите на кнопку next. 
    Теперь подключите один из запущенных экземпляров ec2, на котором вы настроили клиентский SDK3 AWS CloudHSM, и выполните дальнейшие действия. 

  14. Скопируйте и вставьте загруженный CSR на экземпляр ec2. 
     
    Используйте следующую команду для создания закрытого ключа. При инициализации кластера AWS CloudHSM необходимо использовать сертификат RSA 2048 или сертификат RSA 4096. 
     
    openssl genrsa -aes256 -out customerCA.key 4096 
     
    Используйте закрытый ключ для создания самоподписного сертификата, при этом система также должна предоставлять программное средство для создания самоподписного сертификата с использованием этого ключа. В следующем примере для создания сертификата подписи используется OpenSSL и закрытый ключ, созданный в предыдущем шаге. 


     
    Надежное оборудование, которое вы используете для создания закрытого ключа для производственного кластера, также должно предоставлять инструмент для подписания CSR с помощью этого ключа. 

    openssl x509 -req -days 3652 -in cluster-s57d6i22vl5_ClusterCsr.csr \ -CA customerCA.crt \ -CAkey customerCA.key \ -CAcreateserial \ -out cluster-s57d6i22vl5_CustomerHsmCertificate.crt 
     
    Примечание: Выполните приведенную выше команду openssl в той же директории, куда вы вставили кластерный CSR. 

  15. Теперь у вас есть сертификат customerCA.crt и сертификат кластера с именем _CustomerHsmCertificate.crt. Загрузите сертификат через портал CloudHSM. 

  16. Нажмите на кнопку Upload File (Загрузить файл) и перейдите к месту, где находятся файлы _CustomerHsmCertificate.crt и customerCA.crt. 

  17. После загрузки файлов нажмите на кнопку Upload and Initialise, и начнется инициализация, которая займет несколько минут. После инициализации кластера давайте активируем его с помощью SDK3. 

  18. После инициализации кластера настройте группу безопасности CloudHSM для экземпляра. 

  19. Активация кластера: 
    Разместите кластер и сертификат якоря на AWS CloudHSM, чтобы активировать кластер. 

    1. Добавьте якорный сертификат доверия HSM customerCA.crt в папку `C:\ProgramData\Amazon\CloudHSM\`. 
    2. Настройте клиента с IP-адресом HSM. 
        $ cd C:\Program Files\Amazon\CloudHSM\ 
        $ configure.exe -a 
    3. Запустите CloudHSM Client: 
        $.\cloudhsm-cli.exe interactive 
    4. Выполните следующую команду для активации кластера после подключения к сессии cloudhsm. 
        aws-cloudhsm>activate cluster 
        По умолчанию будет предложено ввести пароль для пользователя admin. 
    5. Теперь кластер активирован, войдите в систему под пользователем admin с помощью следующей команды 
        aws-cloudhsm>login --username admin --role 
    6. Создайте пользователя CU, который необходим 
        aws-cloudhsm>user create --username --role crypto-user 
    7. Выйдите из системы пользователя admin 
        aws-cloudhsm>logout 
    8. Войдите в систему под пользователем CU 
        aws-cloudhsm>login --username --role crypto-user 

  20. Теперь кластер активен, давайте настроим учетные данные HSM: 
    1. $ cd C:\Program Files\Amazon\CloudHSM\tools\ 
    2. $ set_cloudhsm_credentials.exe --username --password 

  21. Настройте клиента с IP-адресом HSM. 

    1. $ cd C:\Program Files\Amazon\CloudHSM\ 
    2. $ configure.exe -a 

  22. Остановите и запустите клиент CloudHSM: 

    1. $ net.exe stop AWSCloudHSMClient 
    2. $ net.exe start AWSCloudHSMClient 

  23. Проверьте установку CSP: 

    1. ksp_config.exe -enum 
    2. cng_config.exe -enum 

  24. Создайте файл request.inf 

  25. Сгенерируйте CSR: 
    1. $ certreq.exe -new request.inf request.csr 

  26. Получите CSR, подписанный вашим управляющим центром сертификации. 

  27. Получив подписанный сертификат, установите его на сервер. 

  28. Выполните приведенную ниже команду, чтобы связать сертификат с Cavium Storage Provider: 
    $ certutil -f -csp "Cavium Key Storage Provider" -repairstore My "" 

  29. Чтобы подписать исполняемый файл этим сертификатом, установите SignTool 
    >> https://go.microsoft.com/fwlink/?linkid=2261842 

  30. Откройте Powershell и выполните следующие команды: 
    $ Get-ChildItem -path cert:\LocalMachine\My 
    Скопируйте отпечаток пальца, полученный для вашего сертификата. 

  31. Перейдите в каталог PowerShell, содержащий SignTool.exe. 
    По умолчанию это C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64. 

  32. Подпишите файл, выполнив следующую команду. 
    $ signtool.exe sign /v /fd sha256 /sha1 /sm C:\Users\Administrator\Desktop\.ps1

  33. Чтобы проверить подпись на файле, выполните следующую команду: 
    $ signtool.exe verify /v /pa C:\Users\Administrator\Desktop\.ps1 

Не забывайте: 

  1. Убедитесь, что группа CloudHSM Security настроена для вашего экземпляра EC2. 

  2. Не забудьте обновить HSM IP на экземпляре при запуске нового экземпляра HSM. 

  3. Запустив кластер, вы можете продолжать его использовать. Чтобы избежать расходов, просто удалите экземпляр HSM и запустите его, когда он вам понадобится.

Система оповещения GlobalSign

Просмотр последних системных оповещений.

Просмотр оповещений

Инструмент инвентаризации сертификатов (CIT)

Сканируйте конечные точки, чтобы найти все ваши сертификаты.

Войти / Зарегистрироваться

Тест конфигурации SSL

Проверьте установку сертификата на наличие проблем и уязвимостей SSL.

Связаться с поддержкой