title: SSLHandshakeException unknown_ca apns java
body: <p>I am trying to implement a standalone application for iphone; for which I wish to use Apple Push notification for iphone clients. 
  I am getting javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca
  Following is my Java code to connect to apns gateway: </p>
  
  <pre><code>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(); 
  </code></pre>
  
  <p>Please help me understand what and how the ssl certificate can be installed on my Linux machine.</p>
  
  <p>EDIT : </p>
  
  <p>It worked for me now, I recreated Cert.p12, and the program started working. I don't know what was the exact cause for not working, but I guess it would be corrupt Cert.p12 file.</p>
  
  <p>Thank you all for your help.</p>