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?
경로가 정상입니다. 트러스트 스토어는 서버 인증서와 아무 관련이 없습니다. 키 스토어는 잘못했을 가능성이 높지만, 키 스토어로 변경하는 것은 생각하지 않습니다. 파일과 키 스토어 패스는 의미가 있습니다. 시스템 등록 정보는 keyStore 및 keyStorePassword로 잘 설명되어 있습니다. – DaveJohnston
맞아요, 그 매개 변수는 서버 속성에 들어갑니다. 웹 브라우저를 사용하여 인증서를 설치하려고 시도 했습니까? ssl 운하를 설정할 수 있는지 확인하십시오. 클라이언트가 올바른 인증서를 제공하고 있지 않은지 확인하십시오. PKCS12를 사용하고 있습니까? – juanp