Я потерял сертификацию для создания файла .p12. Как я могу создать новый?

В настоящее время у меня есть одно приложение, публикуемое в AppStore, и я точно не знаю, почему не работают push-уведомления. Что-то не так с файлом .p12 на моем сервере, потому что, когда мой сервер пытается сгенерировать push-уведомление и отправить его в среду Apple, я вижу следующую ошибку в своем журнале:

02–27 11:42:11,868 [IOSPushNotificationSender] ОШИБКА javapns.notification.PushNotificationManager — ошибка доставки: javapns.communication.exceptions.InvalidCertificateChainException: неверная цепочка сертификатов (получено фатальное предупреждение: certificate_unknown)! Убедитесь, что предоставленное вами хранилище ключей было создано в соответствии со спецификациями...

2013-02-27 11:42:11,874 [IOSPushNotificationSender] ОШИБКА camMan.server.mobile.ApplePNSSender - javapns.communication.exceptions.InvalidCertificateChainException: Неверная цепочка сертификатов (Получено фатальное предупреждение: certificate_unknown)! Убедитесь, что предоставленное вами хранилище ключей было создано в соответствии со спецификациями...

Хорошо, я попытался создать новый файл .p12, но я точно не помню, какой из них был исходным сертификатом (.cer).

Я попытался загрузить (.cer) из профиля обеспечения, но когда я открываю его с доступом к цепочке ключей, этот сертификат не имеет закрытого ключа.

Итак, я потерялся, я не знаю, что мне делать... Могу ли я сгенерировать новый файл .p12 без необходимости изменять какую-либо сертификацию или что-то еще в моем приложении? Я не хочу загружать новую версию своего приложения в appStore... только мне нужно знать, как сгенерировать или загрузить или что-то еще, чтобы установить новый и действительный файл .p12 и снова отправить push-уведомления.

Также я проверил все настройки на портале подготовки, и все включено, активно, как и другие приложения, которые у меня есть ... поэтому я думаю, что единственная проблема - это .p12

Также у меня все тот же ключ/пароль из стр.12... только я потерял CSR (.cer).


person Juan Pedro Martinez    schedule 28.02.2013    source источник
comment
Является ли учетная запись разработчика из вашего сертификата загрузки учетной записью вашего клиента? или этот сертификат не сгенерирован с того же Mac?   -  person Dilip    schedule 28.02.2013
comment
Вы а) используете сертификат разработки или б) отправляете свои полезные нагрузки на gateway.sandbox.push.apple.com вместо gateway.push.apple.com?   -  person Rok Jarc    schedule 28.02.2013
comment
Точно, я работал на другом Mac ... Я только что загрузил сертификат production.cer из профиля обеспечения, и когда я открыл его с доступом к цепочке ключей, точно !!!, CSR был там, а также закрытый ключ. ..вау!...Я только что сгенерировал .p12, но пока не могу его протестировать...Я дам вам знать, что произойдет...спасибо   -  person Juan Pedro Martinez    schedule 28.02.2013


Ответы (3)


Похоже, на вашем компьютере отсутствует закрытый ключ — либо он был удален, либо принадлежит другому Mac.

В любом случае вы можете просто отозвать существующую верт и создать новую, загрузив новый CSR (созданный приложением Keychain Access на вашем Mac).

person Vinny Coyne    schedule 28.02.2013
comment
Спасибо, точно, приватный ключ был на другом компе. спасибо - person Juan Pedro Martinez; 01.03.2013

Без закрытого ключа ваши сертификаты и файлы обеспечения бесполезны. Отзовите их все, удалите их все и повторно создайте новые сертификаты и положения после внимательного повторного прочтения документации Apple по этой теме. Вы должны изменить настройки сборки в своих проектах Xcode, чтобы использовать новые, если это не делается автоматически. Это не повлияет на уже одобренные приложения и в App Store.

person hotpaw2    schedule 28.02.2013
comment
Спасибо, мне не нужно было генерировать новые сертификаты, потому что проблема была с закрытым ключом (был на другом компьютере). Но в любом случае, очень важно последнее, о чем упоминается... в случае, если вам нужно отозвать и создать новый сертификат для вашего приложения и изменить его также в конфигурации Xcode (цели), очень важно иметь в виду, что текущее приложение/версия вашего приложения не пострадает. Спасибо - person Juan Pedro Martinez; 01.03.2013
comment
Но в этом случае, когда вам нужно отозвать и создать заново, файл .p12 будет новым и другим, верно? Итак, в этом случае, если вы обновите свой новый файл .p12 на сервере, как это не повлияет на текущую версию, одобренную в магазине приложений ??? Конечно же... верно? - person Juan Pedro Martinez; 01.03.2013
comment
Приложения, уже находящиеся в App Store, подписываются сертификатами Apple, а не вашими, после того, как они модифицируют набор приложений. Вы можете проверить это, загрузив одно из собственных приложений из App Store. - person hotpaw2; 02.03.2013

Поскольку у вас работали push-уведомления на этапе разработки, вероятно, вы знакомы с процедурой установки сертификата на ваш сервер.

Вы можете создать и установить новый сертификат в любое время, если вы потеряли свои старые файлы.

Две вещи, на которые вы должны обратить внимание:

этап разработки:

вы используете SSL-сертификат Development Push SSL

ваш целевой сервер: gateway.sandbox.push.apple.com

стадия производства:

вы используете SSL-сертификат Production Push SSL

ваш целевой сервер: gateway.push.apple.com

person Rok Jarc    schedule 28.02.2013
comment
У меня не так много опыта работы с iOS, но я думал, что не могу получать push-уведомления в среде разработки. Я посмотрю ... спасибо за этот совет. - person Juan Pedro Martinez; 01.03.2013