2012-02-29 2 views
3

Я пытаюсь отправить push-уведомления на свое устройство, используя javapns библиотека в liferay. Вот код:Получен фатальный сигнал: handshake_failure

private void pushNotification(ActionRequest actionRequest, 
      ActionResponse actionResponse) { 

     try { 
      System.out.println("Push"); 

      Push.alert("Hello World!", "ck.p12", "PASSPHRASE", false, "TOKEN"); 

     } catch (CommunicationException e) { 
      System.out.println("CommunicationException"); 
      e.printStackTrace(); 
     } catch (KeystoreException e) { 
      System.out.println("KeystoreException"); 
      e.printStackTrace(); 
     } 

    } 

Я получаю эту ошибку, когда pushNotification называется:

ERROR [PushNotificationManager:450] Delivery error: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 

Я гугл его, но не смог найти какое-либо решение.

Кто-нибудь знает, как решить эту проблему?

ответ

9

Исключение составляет javax.net.ssl.SSLHandshakeException Исключение обычно вызывается, когда сервер, к которому вы пытаетесь подключиться, не имеет действительного сертификата от уполномоченного центра сертификации.

Проще говоря, сервер, к которому вы пытаетесь подключиться, скорее всего, использует самозаверяющий сертификат, и вам необходимо разместить его в своем Java-коде. Это связано с созданием пользовательского KeyStore и т. Д. См. this Ответ на переполнение стека для подробных сведений о реализации.

+0

Да, я столкнулся с такой же проблемой. Вам необходимо предоставить сервер хранилища ключей и хранилища ключей. –

0

Установить следующие свойства на сервере

javax.net.ssl.keyStore=../keystore/keystoreFile.jks 
javax.net.ssl.keyStorePassword=yourPassword 
javax.net.ssl.trustStore=../keystore/keystoreFile.jks 
javax.net.ssl.trustStorePassword=yourPassword 
javax.net.debug=true 

вы можете создать хранилище ключей с помощью

keytool -genkey -alias myKeyStore -keyalg RSA -keystore /home/aniket/keystore/keystoreFile.jks 
0

Это алго происходит, когда, например, сервер принимать только TLS и клиент пытается создать SSL-соединение ... проверьте также конфигурацию сервера/клиента

Смежные вопросы