This commit is contained in:
地平线
2015-09-06 14:40:22 +08:00
parent 9d55a03c4a
commit 7f6bc74796

View File

@@ -71,15 +71,18 @@ public class ApnsService implements Service {
final String path = "/" + this.getClass().getPackage().getName().replace('.', '/') + "/" + apnscertpath;
KeyStore ks = KeyStore.getInstance("PKCS12");
InputStream in = ApnsService.class.getResourceAsStream(path);
ks.load(in, apnscertpwd.toCharArray());
in.close();
KeyManagerFactory kf = KeyManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
kf.init(ks, apnscertpwd.toCharArray());
KeyManagerFactory kf = null;
if (in != null) {
ks.load(in, apnscertpwd.toCharArray());
in.close();
kf = KeyManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
kf.init(ks, apnscertpwd.toCharArray());
}
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init((KeyStore) null);
SSLContext context = SSLContext.getInstance("TLS");
context.init(kf.getKeyManagers(), tmf.getTrustManagers(), null);
context.init(kf == null ? new KeyManager[0] : kf.getKeyManagers(), tmf.getTrustManagers(), null);
ApnsService.this.sslFactory = context.getSocketFactory();
} catch (Exception e) {
logger.log(Level.SEVERE, this.getClass().getSimpleName() + " init SSLContext error", e);