2009-08-05 7 views
4

Я пытаюсь реализовать автономное приложение для 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.

Благодарим всех вас за помощь.

ответ

1

unknown_ca:

Получен правильная цепочка сертификатов или частичную цепочка, но сертификат не был принят, так как сертификат CA не может быть найден или не может быть сопоставлен с известным, доверенным центром сертификации Это сообщение всегда фатально.

Возможно, вам нужно будет добавить сертификат в файл cacerts jre (как правило, находится под lib/security). Изучите документацию для keytool и ее вариант -import для получения дополнительной информации.

Возможно, вы можете найти пример того, как это сделать, исследуя файл cacerts и keytool дальше.

0

был такой же проблема.

импорт в IE/экспорт с «всеми включенными сертификатами» разрешил его.

+0

Что вы подразумеваете под «всеми сертификатами»? Это какой-то флажок? Не могу найти :( – Goddchen