Ошибка keytool: ответ сертификата не содержит открытый ключ для
Я недавно купил сертификат от GoDaddy для кодирования подписи приложения Adobe Air.
Я сгенерировал файл CSR (Code Signing Request) и отправил его им. Они отправили обратно файл сертификата.spc (формат PKCS #7).
Я использую keytool, который поставляется с Adobe Air. Вот команды, которые я использовал.
Создать CSR:
"C:\Program Files (x86)\Adobe\Flex Builder 3\jre\bin\keytool.exe" -genkey -alias codesigncert -keypass password123 -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore
Импортировать сертификат в хранилище ключей:
"C:\Program Files (x86)\Adobe\Flex Builder 3\jre\bin\keytool.exe" -import -alias codesigncert -file cert.spc -keystore codesignstore
После выполнения этой команды я получаю сообщение об ошибке:
keytool error: java.lang.Exception: Certificate reply does not contain public key for <codesigncert>
Что могло пойти не так?
Вот руководство, которому я следую: http://help.godaddy.com/article/4780
2 ответа
Ответ был очень прост. Файл сертификата не был создан файлом CSR, он был создан другим файлом CSR. Я просто получил новый сертификат, и это сработало.
После того, как сертификат импортирован в хранилище ключей, я мог выполнить следующую команду, чтобы подписать промежуточный файл Adobe Air.
adt -sign -alias codesigncert -storetype jks -keystore codesignstore -storepass storepass123 -keypass password123 "C:\myapp\widget.airi" "C:\myapp\widget.air"
У меня была похожая проблема; несоответствие между выданным сертификатом и файлом запроса сертификата привело к сообщению об ошибке:
keytool error: java.lang.Exception: Certificate reply does not contain public key for <xyzzy>
В моем случае я использовал другой центр сертификации, Thawte. Причиной проблемы было то, что когда я зашел на сайт сертификатов Thawte, чтобы забрать свой недавно выданный сертификат, сайт сказал, что мой сертификат готов к загрузке, но по любопытству по умолчанию они выбрали другого двухлетнего ребенка. сертификат, а не тот, который только что был выдан. Итак, я скачал неправильный сертификат. Так было, пока я не сделал:
keytool -printcert -v -file the-pkcs7-file
и увидел в справке старые даты, что я понял, что произошло. Затем я загрузил правильный файл сертификата PKCS7.