2013-07-05 3 views
1

weblogic 내에서 https 서비스 호출을 호출하려고 할 때 ssl 핸드 셰이크 실패가 발생합니다. weblogic 트러스트 스토어 ("cacerts")에 서버 인증서를 추가했습니다. 웹 로직 시작 스크립트에서 신뢰 저장소를 추가하는 데 사용weblogic ssl 핸드 셰이크 실패 트러스트 스토어 문제

명령 : -이 문제를 해결하기 위해 모든 포인터

 JAVA_OPTIONS="-Dweblogic.security.SSL.trustedCAKeyStore="/weblogic92/server/lib/cacerts" ${JAVA_OPTIONS}" 

수출 JAVA_OPTIONS

은 내가 아무것도 실종?

SSLPoke.java를 사용하여 앱 서버 상자 내에서 SSL 연결을 테스트했으나 성공했습니다.

java -Djavax.net.ssl.trustStore=/weblogic92/server/lib/cacerts 
    -Djavax.net.ssl.trustStorePassword=changeit SSLPoke 192.16.2.6 8443 

웹 로직 서버 로그 추적 :

다른 여러 가지가 있습니다
 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1628) 
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:230) 
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:224) 
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1027) 
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:120) 
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:574) 
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:510) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:888) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1117) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:629) 
    at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59) 
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) 
+0

따옴표 문제 일 수 있습니까? JAVA_OPTIONS = "- Dweblogic.security.SSL.trustedCAKeyStore =/weblogic92/server/lib/cacerts"$ {JAVA_OPTIONS} – Xargos

+0

@ Xargos - 아니 견적 문제가 아니라, 나는 변수를 사용해 보았습니다. SSL 옵션이 시작 로그에 표시되지만 ssl 호출을 할 때 - 응용 프로그램 수준에서 오류가 발생합니다. – challenge

+0

그래서'keytool -v -list -keystore/weblogic92/server/lib/cacerts'를 실행하면 서버를 볼 수 있습니까? 또한 시도 할 수 있습니다 :'-Djavax.net.ssl.trustStore =/weblogic92/server/lib/cacerts' –

답변

1

당신이 시도 할 수 :

  1. 당신은 또한 시도 해 봤나 JAVA_OPTIONS = "$ {JAVA_OPTIONS} -Dweblogic.security .SSL.trustedCAKeyStore =/weblogic92/server/lib/cacerts "

  2. 인증서를 추가하십시오.

    1. -Dweblogic.security.SSL.verbose = 사실

    2. :

    3. 당신은 또한 다음과 같은 자바 옵션을 추가 할 수있는 콘솔 (서버 -> server_name-> 키 스토어)를 사용하여 s의 -Dweblogic.security.SSL.enable.renegotiation = 사실

    4. -Dsun.security.ssl.allowUnsafeRenegotiation = 사실

  3. 서버 -> 서버 _ 이름 -> SSL (고급)에서 JSSE SSL 사용을 선택하십시오.

  4. 서버 인증서 사용을 선택하십시오. 없음

+0

"서버 -> 서버 _ 이름 -> SSL (고급) 확인 JSSE SSL 사용"옵션이 표시되지 않습니다. " weblogic 관리 콘솔에서. 9.2.2 weblogic server를 사용합니다. 시도한 옵션 1과 3. – challenge

+0

현재 로그에서이 설정 "java.protocol.handler.pkgs = weblogic"을 볼 수 있습니다.utils | weblogic.utils | weblogic.utils | weblogic.net "변경 핸들러를 만들 필요가 있습니까? – challenge

+0

관리자와 인스턴스가 2 개 있습니다. 위의 설정 1과 3이 관리 인스턴스의 시작 스크립트에 적용됩니다. 수준입니다. 관리 인스턴스에 적용해야합니까? – challenge

0

  • 변경 호스트 이름 확인

  • 그것은 따옴표 문제입니다. 무의미한 내부 인용 부호를 제거하십시오 :

    JAVA_OPTIONS="-Dweblogic.security.SSL.trustedCAKeyStore=/weblogic92/server/lib/c‌​acerts ${JAVA_OPTIONS}"