Я пытаюсь написать службу в Grails для отправки push-уведомлений для обновления пропусков сберегательных книг. Я дошел до того, что смог проверить, работает ли код для подключения к серверу APN, однако я не могу установить соединение с использованием методов Java SSLSocket.Сбой сертификата APN Passbook (Java/Groovy)
Первая часть соединения работает, я получаю сертификат с сервера и нахожу доверенный сертификат в цепочке сертификатов; однако после этого по какой-то причине моя клиентская сертификация/цепочка сертификатов никогда не отправляется на сервер, и, следовательно, соединение терпит неудачу.
Я не могу показаться, чтобы выяснить, почему сертификат не отправляется, я использую следующий код для установки хранилища ключей:
void setupSSLPropertiesForConnection() {
System.setProperty("javax.net.ssl.keyStore", "superSecretFile.p12")
System.setProperty("javax.net.ssl.keyStorePassword", "superSecretPassword")
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12")
System.setProperty("javax.net.ssl.trustStore", "trustStoreFile")
System.setProperty("javax.net.ssl.trustStorePassword", "trustStorePassword")
System.setProperty("javax.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol")
}
, а затем попытаться соединиться с сервером APN:
setupSSLPropertiesForConnection()
SSLSocketFactory factory = (SSLSocketFactory)SSLSocketFactory.getDefault()
SSLSocket socket = (SSLSocket)factory.createSocket("gateway.push.apple.com", 2195)
Я посмотрел на файл PKCS12 с помощью Keytool Java, и есть только один псевдоним, который содержит всю цепочку сертификатов для моей сберкнижки, сертификата (свидетельство, ВДРВР, Apple сертификат), так что я застрял на том, почему сертификат не отправляется, когда он запрашивается. Любая помощь относительно того, почему она не отправляет информацию о сертификате, была бы очень оценена!
Edit: Кроме того, если кто-то опубликовать способ получения SSL сертификата от .p12, используемого для подписи пропусков или просто из сертификата сберкнижки, загруженный из Dev портала IOS, что известно на работу, то Я мог бы работать назад от этого, чтобы понять, что я делаю неправильно.