install4j: Автоматизация подписи кода расширенной проверки Windows и нотариального заверения Apple на одном компьютере?

Мы рассматриваем возможность перехода на сертификат подписи кода с расширенной проверкой (EV).

Чтобы полностью автоматизировать нотариальное заверение в Apple, нам пришлось переключить нашу сборочную машину на Mac mini.

Читая о процессе подписи кода EV и о том, как его автоматизировать , возникло два вопроса:

Можно ли автоматизировать ввод пароля для аппаратного токена (HSM)?

Комментарий Инго Кегеля по этому вопросу SO , по-видимому, указывает на то, что вы можете передать пароль HSM через --win-keystore-password=<password>вариант командной строки.

Это правильно?

Может ли мультиплатформенная сборка по-прежнему выполняться на одной машине (Mac mini)?

В справке install4j упоминаются «разные платформы»:

В Windows к такому аппаратному токену обычно можно получить доступ через хранилище ключей Windows. На другой платформе необходимо выбрать параметр «Библиотека аппаратного модуля безопасности PKCS #11» и настроить собственную библиотеку, которая обеспечивает доступ к хранилищу ключей в HSM через API PKCS #11.

Существуют ли библиотеки PKCS #11 для MacOS? Диалог выбора библиотеки запрашивает DLL...

3 ответа

Я могу подтвердить, что нам удалось запустить это (автоматическое подписание кода Windows EV и нотариальное заверение Apple на Mac mini):

  • Купил сертификат подписи кода Sectigo EV
  • Прикрепил доставленный SafeNet eToken 5110 (USB Dongle) к Mac mini.
  • Установленный клиент аутентификации SafeNet (как на Mac mini, так и на Windows для тестирования)
  • Экспортировал сертификат из токена, чтобы посмотреть цепочку сертификатов
  • Экспортированы цепочки сертификатов из хранилища ключей Windows (certmgr.msc).
  • Импортированы сертификаты цепочки в токен (очевидно, некоторые эмитенты сделают это за вас и доставят токен, который содержит не только сертификат подписи, но и его цепочку)
  • Если сертификаты не могут быть добавлены к токену, их можно предоставить install4j в каталоге через переменную компилятора. sys.ext.certDir
  • Настроена подпись кода install4j для использования библиотеки PKCS11, поставляемой с клиентом аутентификации SafeNet: /usr/local/lib/libeTPkcs11.dylib
  • Для тестирования в Windows: C:/Windows/System32/eTPKCS11.dll
  • Наконец: больше нет сообщения SmartScreen

Комментарий Инго Кегеля к этому вопросу SO, по-видимому, указывает на то, что вы можете передать пароль HSM с помощью параметра командной строки --win-keystore-password=.

Да, это правильно. Этот параметр доступен на платформах, отличных от Windows, а также для подписи кода исполняемых файлов Windows.

Может ли мультиплатформенная сборка по-прежнему выполняться на одной машине (Mac mini)?

Да, многоплатформенная сборка, включающая нотариальное заверение, может быть выполнена только на macOS, потому что Apple не разрешает запросы на нотариальное заверение, кроме как из macOS.

Существуют ли библиотеки PKCS #11 для MacOS? Диалог выбора библиотеки запрашивает DLL...

Вам нужна библиотека для HSM, это будет файл .so в Linux или файл *.dylib в macOS. Я создал проблему для выбора файлов, чтобы показать правильный фильтр файлов на основе текущей платформы.

Доступность такой библиотеки для macOS зависит от HSM. Эти библиотеки загружаются Java Cryptography Api (JCA), и в install4j нет специального кода для Windows в этом отношении.

Основываясь на ответе Инго Кегеля, я быстро рассмотрел распространенные токены HSM и поддержку их библиотек. Скомпилировано здесь только для дальнейшего использования (у меня нет возможности проверить это прямо сейчас).

USB-токены (HSM) как DigiCert, так и Sectigo кажутся некоторой версией SafeNet eToken .

Очевидно, что SafeNet была куплена Gemalto, которую, в свою очередь, купила Thales.

И DigiCert, и Sectigo предлагают загрузку драйверов SafeNet eToken и клиентов аутентификации (для Window/MacOS/Linux). Я не смог найти никаких загрузок на веб-сайте Thales.

В этом сообщении о подписании PDF-документов в MacOS Sierra с помощью SafeNet eToken 5100 есть снимок экрана, показывающий файл драйвера:

      /usr/local/lib/libeTPkcs11.dylib

Другие вопросы по тегам