Я пытаюсь настроить хранилище ключей для подписи кода на нашем сервере сборки Linux, и у меня возникают проблемы с этим. Справочная информация. Мы используем обе среды IDE Netbeans для разработки приложения, которое мы выпускаем как в виде jar-файла, так и в виде исполняемого файла (со встроенной JRE, чтобы избежать проблем с совместимостью). Разработка выполняется на наших ПК с Windows 7, но сервер сборки размещен на сервере сборки Linux. Мы используем Ант. Проблема: мне нужно настроить хранилище ключей, чтобы тот же Ant build.xml генерировал подписанный файл jar (и exe-файл) на моем ПК, а также мог генерировать тот же подписанный jar-файл и exe-файл на сервере сборки. . Я получил PFX-файл отдела от нашего ИТ-отдела, а также промежуточный и корневой сертификаты. Эти 3 элемента ДОЛЖНЫ обеспечивать полную цепочку (я думаю). Я пробовал разные способы импортировать их на наш Linux-ПК, но безуспешно. Я использовал openssl для извлечения pem-сертификата и pem-закрытого ключа из pfx и попытался импортировать их во вновь созданный файл .keystore на ПК с Linux, но до сих пор не могу заставить ни jarsigner подписать jar, ни signtool подписать EXE. когда я набираю: jarsigner -keystore .keystore .jar ... я получаю ... jarsigner: цепочка сертификатов не найдена для: daqkey. daqkey должен ссылаться на допустимую запись ключа KeyStore, содержащую закрытый ключ и соответствующую цепочку сертификатов открытого ключа. Как я могу убедиться, что закрытый ключ хранилища ключей имеет правильную цепочку сертификатов? Я попробовал команду keytool -list, но не знаю, что я ищу в результирующем выводе. Кто-нибудь может помочь?
ПОДРОБНЕЕ: после использования jarsigner для попытки подписать файл jar я получаю следующие результаты: smk 5763 Thu Aug 06 10:54:02 CDT 2015 com/nov/cp/daqconfigtool/resources/log-configuration.xml
X.509, CN="myCompanyName", O="myCompanyName", L=Houston, ST=Texas, C=US (daqkey)
[certificate is valid from 3/31/15 10:11 AM to 4/1/16 4:18 AM]
X.509, CN=Entrust Code Signing Certification Authority - L1D, OU="(c) 2009 Entrust, Inc.", OU=www.entrust.net/rpa is incorporated by reference, O="Entrust, Inc.", C=US
[certificate is valid from 11/11/11 9:29 AM to 11/11/21 9:28 PM]
X.509, CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
[certificate is valid from 3/23/09 10:18 AM to 3/23/19 10:48 AM]
X.509, CN=Entrust.net Secure Server Certification Authority, OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS incorp. by ref. (limits liab.), O=Entrust.net, C=US
[certificate is valid from 5/25/99 11:09 AM to 5/25/19 11:39 AM]
[entry was signed on 8/7/15 9:21 AM]
X.509, CN="myCompanyName", O="myCompanyName", L=Houston, ST=Texas, C=US (daqkey)
[certificate is valid from 3/31/15 10:11 AM to 4/1/16 4:18 AM]
[CertPath not validated: Path does not chain with any of the trust anchors]
Есть идеи?
jarsigner -verify
это нравится, и особенно еслиjarsigner -verify -verbose
показываетsmk
для ваших записей, это подписано. Если вы хотите, чтобы файл .exe был подписан, вам нужен инструмент, отличный отjarsigner
, но я не знаю какой; Я бы начал искать поблизости от любого инструмента, создающего .exe. - person dave_thompson_085   schedule 14.08.2015keytool -importkeystore -srckeystore p12file -srcstoretype pkcs12 -destkeystore jksfile
(вам не нужно указывать-deststoretype jks
, потому что это значение по умолчанию). Как для PKCS#12, так и для JKSkeytool -list -v
(обратите внимание на-v
) покажет вам полную цепочку сертификатов для записи PrivateKey (или каждую запись, если их несколько, что бывает редко). - person dave_thompson_085   schedule 14.08.2015