2010-02-08 5 views
1

Windows Mobile PDA에서 실행될 모바일 애플리케이션을 개발 중입니다. 응용 프로그램은 Java로 작성되었으며이를 실행하기 위해 IBM의 J9 JVM을 사용합니다. 응용 프로그램은 HTTP를 통해 Apache Tomcat 서버와 통신하며 SSL을 사용하도록 지금 설정하려고합니다.SSL HandShakeException : No_Certificate. IBM J9 JVM과 Apache Tomcat 사용하기

저는 클라이언트와 서버 모두에 대해 공용/개인 키를 생성하고 자체 서명 된 인증서를 내 보낸 다음 해당 키 저장소로 가져 왔습니다. 처음에는 서버 측 인증만을 사용하여 작동하도록 시도했지만 성공했습니다. 하지만 이제는 아파치 conf 디렉토리의 server.xml 파일에서 clientAuth = "true"로 설정하여 상호 인증을 시도하고 있습니다.

서버에서 SSL 로깅을 활성화했으며 클라이언트가 서버를 연결하면 SSLProtocolException : handshake alert : no_certificate가보고됩니다.

javax.net.ssl.SSLHandshakeException: unexpected_message 
    at com.ibm.j9.jsse.SSLSocketImpl.completeHandshake(Unknown Source) 
    at com.ibm.j9.jsse.SSLSocketImpl.startHandshake(Unknown Source) 
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.openSocket(Unknown Source) 
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.connect(Unknown Source) 
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.sendRequest(Unknown Source) 
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.doRequest(Unknown Source) 
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.getInputStream(Unknown Source) 

클라이언트 키 저장소 및 신뢰가 다음과 같은 시스템 속성을 설정하여 구성됩니다 :

javax.net.ssl.trustStore 
javax.net.ssl.trustStorePassword 
javax.net.ssl.keyStore 
javax.net.ssl.keyStorePassword 

사람이 내가에 클라이언트 인증을 설정하는 방법에 어떤 아이디어가 있습니까 클라이언트 로그는 예외를 표시 J9 JVM?

답변

0

그래서 내가 얻은 궁극적 인 대답은 다른 JVM으로 전환하는 것입니다. . IBM이 제공하는 지원은 거의 없었으며 JVM에 대한 라이센스를 판매 할 사람을 얻으려고 시도하는 것이 매우 어려웠습니다. 나는 그들이 단지 거대한 조직을 다루는 것을 좋아한다고 생각한다.

이제 Skelmir의 CEE-J를 사용하여 지금까지 훨씬 더 유망했습니다.

-1

기본적으로 클라이언트는 인증서를 보내지 않습니다. 서버가 클라이언트를 인증 할 수 없습니다. 인증서를받지 못하거나 CA_ROOT가 같지 않고 응답을 설정할 수없는 경우가 있습니다. 'no_certificate'메시지는 클라이언트가 아무것도 보내지 않는다고 쉽게 상상할 수 있습니다. 'truststore'대신 'truststoreFile'을 사용하고 truststorePassword 대신 truststorePass를 사용해야합니다.

+1

경로가 정상입니다. 트러스트 스토어는 서버 인증서와 아무 관련이 없습니다. 키 스토어는 잘못했을 가능성이 높지만, 키 스토어로 변경하는 것은 생각하지 않습니다. 파일과 키 스토어 패스는 의미가 있습니다. 시스템 등록 정보는 keyStore 및 keyStorePassword로 잘 설명되어 있습니다. – DaveJohnston

+0

맞아요, 그 매개 변수는 서버 속성에 들어갑니다. 웹 브라우저를 사용하여 인증서를 설치하려고 시도 했습니까? ssl 운하를 설정할 수 있는지 확인하십시오. 클라이언트가 올바른 인증서를 제공하고 있지 않은지 확인하십시오. PKCS12를 사용하고 있습니까? – juanp