Подписание приложения Adobe Air с помощью файла SPC - PullRequest
2 голосов
/ 22 декабря 2010

Я недавно приобрел цифровой сертификат у GoDaddy, чтобы подписать приложение Adobe Air.GoDaddy и, возможно, некоторые другие центры сертификации поставляют свои сертификаты в виде файлов SPC.Однако большая часть информации о компиляции и подписи эфирного приложения предполагает наличие файла p12.Я потратил некоторое время на то, чтобы разобраться, как справиться с этой проблемой, и подумал, что было бы хорошо поделиться этим процессом с сообществом SO.Я скоро отправлю ответ.

1 Ответ

4 голосов
/ 22 декабря 2010

Ключом к правильному методу было понимание того, что файл p12 является хранилищем ключей, а не просто сертификатом. Хранилище ключей содержит ключ и сертификат. При подписании приложения Adobe Air вы должны предоставить хранилище ключей, а не просто сертификат. Итак, позвольте мне начать сверху.

Шаг 1 : создание хранилища ключей

keytool -genkey -alias codesigncert -keypass <yourkeypwd> -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore -storepass <yourstorepwd>

Шаг 2 : создание запроса на сертификат

keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore

Шаг 3 : Приобретите сертификат у CA, используя CSR, созданный на предыдущем шаге. В моем случае я скачал сертификат в виде файла SPC.

Шаг 4 : добавьте сертификат в хранилище ключей

keytool -import -keystore codesignstore -storepass <yourstorepwd> -alias codesigncert -file mycert.spc

Шаг 5 : В настоящее время ваше хранилище ключей является хранилищем ключей Java (JKS). Преобразовать это в PKCS12

keytool -importkeystore -srckeystore codesignstore -srcstoretype JKS -deststoretype PKCS12 -destkeystore codesignstore.p12

Шаг 6 : подписать приложение

adt -package -storetype pkcs12 -keystore codesignstore.p12 -storepass <yourstorepwd> -keypass <yourkeypwd> <name of output file> application.xml <path to root dir>

Я думаю, что также возможно пропустить шаг 5 и выполнить шаг 6, используя хранилище ключей JKS. Однако я не подтвердил, что это работает.

...