Опитвам се да настроя хранилището за ключове за подписване на код на нашия сървър за изграждане на Linux и имам проблеми с това. Предистория: Използваме и двете Netbeans IDE за разработване на приложение, което пускаме както като jar файл, така и като exe (с вграден JRE, за да избегнем проблеми със съвместимостта). Разработката се извършва на нашите компютри с Windows 7, но сървърът за изграждане се хоства на сървър за изграждане на linux. Използваме Ant. Проблем: Трябва да настроя хранилището за ключове, така че същият Ant build.xml да генерира подписания jar файл (и exe файл) на моя компютър, както и да мога да генерирам същия подписан jar и exe файл на сървъра за изграждане . Получих pfx файл на отдела от нашия ИТ, както и междинен и основен сертификат. Тези 3 артикула ТРЯБВА да предоставят пълната верига (мисля). Опитах различни начини да ги импортирам в нашия компютър с Linux без успех. Използвах openssl за извличане на сертификата pem и частния ключ pem от pfx и се опитах да ги импортирам в новосъздадения файл .keystore на компютъра с linux, но все още не мога да накарам нито jarsigner да подпише jar, нито signtool да подпише екз. когато пиша: jarsigner -keystore .keystore .jar ... получавам ... jarsigner: Веригата на сертификата не е намерена за: daqkey. daqkey трябва да препраща към валиден ключ на KeyStore, съдържащ частен ключ и съответна верига от сертификати за публичен ключ. Как мога да проверя дали частният ключ на хранилище за ключове има правилна верига от сертификати? Опитах командата keytool -list, но не знам какво търся в резултатния изход. Може ли някой да помогне?
ПОВЕЧЕ ПОДРОБНОСТИ: след като използвах jarsigner, за да се опитам да подпиша jar файл, получавам тези резултати: smk 5763 четвъртък, 6 август 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, така и за JKS,keytool -list -v
(обърнете внимание на-v
) ще ви покаже пълната верига от сертификати за записа PrivateKey (или всеки запис, ако е повече от един, което е рядко). - person dave_thompson_085   schedule 14.08.2015