2009-08-05 5 views
4

iphone 용 독립 실행 형 응용 프로그램을 구현하려고합니다. iphone 클라이언트 용 Apple Push 알림을 사용하고 싶습니다. 수신 치명적인 경고 : 내가 javax.net.ssl.SSLHandshakeException을 얻고있다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 인증서가 설치된 할 수있는 방법을 이해하는 데 도움 주시기 바랍니다 : unknown_ca에 이어 APNS 게이트웨이에 연결하는 내 자바 코드 내 리눅스 머신.

는 편집 :

그것은 지금 나를 위해 일한

, 나는 Cert.p12를 다시, 프로그램이 작동하기 시작했다. 나는 작동하지 않는 정확한 이유는 무엇인지 모르지만, Cert.p12 파일이 손상되었을 것입니다.

도움 주셔서 감사합니다. unknown_ca

답변

1

:

유효한 인증서 체인 또는 부분 체인을 받았지만, 인증서는 CA 인증서를 찾을 수 없습니다 때문에 허용되지 않았거나 알려진, 신뢰할 수있는 CA와 일치 할 수없는 이 메시지는 항상 치명적입니다.

jre의 cacerts 파일 (일반적으로 lib/security 아래에 있음)에 인증서를 추가해야 할 수도 있습니다. 자세한 내용은 keytool 및 -import 옵션에 대한 설명서를 참조하십시오.

cacerts 파일과 keytool을 자세히 조사하면이 작업을 수행하는 방법의 예가 있습니다.

0

에 동일한 문제가 있습니다.

"모든 인증서가 포함 된"로 IE/내보내기로 가져 오면 해결됩니다.

+0

"모든 인증서가 포함되어 있습니까?" 이 체크 박스가 어딘가에 있습니까? 그것을 찾을 수 없다 :( – Goddchen