Я пытаюсь реализовать автономное приложение для iphone; для которого я хочу использовать уведомление Apple Push для iphone-клиентов. Я получаю javax.net.ssl.SSLHandshakeException: Получен фатальное предупреждение: unknown_ca Ниже мой Java-код для подключения к шлюзу APNs:SSLHandshakeException unknown_ca apns java
int port = 2195;
String hostname = "gateway.sandbox.push.apple.com";
char[] passwKey = "password".toCharArray();
KeyStore ts = KeyStore.getInstance("PKCS12");
ts.load(new FileInputStream("/path/to/file/Cert.p12"), passwKey);
KeyManagerFactory tmf = KeyManagerFactory.getInstance("SunX509");
tmf.init(ts, passwKey);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(tmf.getKeyManagers(), null, null);
SSLSocketFactory factory = sslContext.getSocketFactory();
SSLSocket socket = (SSLSocket) factory.createSocket(hostname,port);
String[] suites = socket.getSupportedCipherSuites();
socket.setEnabledCipherSuites(suites);
//start handshake
socket.startHandshake();
Пожалуйста, помогите мне понять, что и как сертификат SSL может быть установлен на моя машина Linux.
EDIT:
В настоящее время она работает для меня, я воссоздал cert.p12, и программа начала работать. Я не знаю, какая была точная причина для неработоспособности, но я думаю, что это был бы поврежденный файл Cert.p12.
Благодарим всех вас за помощь.
Что вы подразумеваете под «всеми сертификатами»? Это какой-то флажок? Не могу найти :( – Goddchen