Я столкнулся с этой же проблемой; в конечном итоге эта ошибка была решена путем повторного экспорта сертификата Entrust из системных корней приложения Access / X Keychain Access.
В завершение я дам полное объяснение того, как я создал файлы ключей / сертификатов (что должно было быть в TechNote 2265 от Apple: https://developer.apple.com/library/content/technotes/tn2265/_index.html)
Создание вашего APN-сертификата и ключа:
- Запустить Keychain Access; выберите брелок «логин» и категорию «Мои сертификаты»
- Выберите сертификат с именем формата «Apple Development IOS Push Services: ...»
- Экспорт сертификата (в меню в разделе «Файл» .. «Экспорт элементов»)
- Экспорт в формат .p12.
Теперь он содержит ваш сертификат и закрытый ключ в зашифрованном формате обмена. Следующий шаг - преобразовать его в защищенный паролем .pem файл
Используя терминал, выполните следующую команду (конечно, используя свои собственные имена файлов):
openssl pkcs12 -in PushCertKey.p12 -out PushCertKey.pem
(Вам нужно будет ввести пароль для файла .p12 и указать другую фразу-пароль для файла .pem.)
Если вы действительно действительно не хотите использовать фразу-пароль для файла .pem, попробуйте:
openssl pkcs12 -in PushCertKey.p12 -out PushCertKeyNoCrypt.pem -nodes
Создание файла сертификата CA:
- Элемент списка
- Запустить приложение Keychain Access
- Перейти к системным корням
- Экспорт сертификата с именем «Центр сертификации Entrust.net (2048)» в файл .pem.
Примечание. Контейнер My Roots имеет четыре сертификата Entrust; два из них с именем «Entrust.net Certification Authority (2048)» (но с разными расширениями сертификатов, через Get Info). Оба сертификата «Entrust.net Certification Authority (2048)» эффективны при проверке цепочки доверия; два других сертификата Entrust не работали. Что еще более важно, сертификат Entrust, на который ссылается Apple TechNote 2265, также не работает.
Убедитесь, что вы экспортируете в формат .pem; по умолчанию .cer, и этот шаг легко пропустить.
Запустите команду проверки:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushCertKey.pem -debug -showcerts -CAfile "Entrust.net Certification Authority (2048).pem"
Этот сервер и процесс предполагают, что вы подключаетесь к серверу APN Apple Dev Sandbox; если вы пытаетесь использовать производственный сервер APN, вам нужно будет использовать правильный сервер и порт.
Для получения дополнительной информации об openssl, я предлагаю следующие страницы: