ZAP HUD 테스트한다고 alpha 버전 올렸었는데, macOS 에선 인앱 브라우저로 특정 사이트 접근 시 SSL 관련 에러가 발생해서 삽질했던거 정리해둡니다.
(Linux는 별 문제 없던 걸로 보아.. macOS와 연관된 문제인가보네요..)

SSLHandshakeException: Received fatal alert: handshake_failure 에러 발생

보통 구글링 해보면 아래 링크 글 확인해서 대응하라고 하는데, ZAP 쪽 설정 + JCE 관련 내용입니다.

https://github.com/zaproxy/zaproxy/wiki/FAQsslHandshake

뭔가 저의 문제가 Java 문제인 것 같았고 JCE 추가로도 해결되지 않아 좀 의아했습니다.

https://media.giphy.com/media/9Y5BbDSkSTiY8/giphy-downsized.gif

그러던 중 원래 쓰던 ZAP은 잘 됬던걸로 생각이 나서 자바 버전 체크를 좀 해봤습니다.
(ZAP은 자체적으로 Java 바이너리를 내장하고 있습니다)

release
Found Java version 1.8.0_152
Available memory: 16384 MB
Setting jvm heap size: -Xmx4096m
0 [main] INFO org.zaproxy.zap.Gui

alpha
Found Java version 1.8.0_111
Available memory: 16384 MB
Setting jvm heap size: -Xmx4096m
0 [main] INFO org.zaproxy.zap.Gui

하위 버전의 미묘한 차이가 있었지만, 분명 이 차이가 문제의 부분이라 생각하고 자바를 release 쪽(1.8.0.152)로 바꿔치기 했습니다.

zap은 zap.sh => zap.jar 파일 순서로 호출되며 zap.sh에 Java 관련 Path, Binary 설정등이 존재합니다. 열어서 Path 부분이랑 최종 실행되는 Java를 바꿔줍니다.

#> vim .zap.sh
// Java path 위치 바꿔줌
24 if [ "$OS" = "Darwin" ]; then
25   if [ -e "/Applications/OWASP ZAP.app/Contents/PlugIns/jre1.8.0_152.jre/Contents/Home/bin/java" ]; then
26     pushd "/Applications/OWASP ZAP.app/Contents/PlugIns/jre1.8.0_152.jre/Contents/Home/bin" > /dev/null
27     echo 'hawul'
28     JAVA_PATH="/Applications/OWASP ZAP.app/Contents/PlugIns/jre1.8.0_152/Contents/Home/bin/java"
29     PATH="$JAVA_PATH:$PATH"
30     popd > /dev/null
31   fi
32 fi

// Java binary 직접 지정 (java1.8.0_111 => java1.8.0_152)
126 # Start ZAP; it's likely that -Xdock:icon would be ignored on other platforms, but this is known to work
127 if [ "$OS" = "Darwin" ]; then
128   # It's likely that -Xdock:icon would be ignored on other platforms, but this is known to work
129   exec "/Applications/OWASP ZAP.app/Contents/PlugIns/jre1.8.0_152.jre/Contents/Home/bin/java" ${JMEM} ${JAVAGC} -Xdock:icon="../Resources/ZAP.icns" -jar "${BASEDIR}/zap-D-2018-    12-17.jar" "${ARGS[@]}"
130 else
131   exec "/Applications/OWASP ZAP.app/Contents/PlugIns/jre1.8.0_152.jre/Contents/Home/bin/java" ${JMEM} ${JAVAGC} ${JAVADEBUG} -jar "${BASEDIR}/zap-D-2018-12-17.jar" "${ARGS[@]}"
132 fi

이후 실행해보면 에러없이 사이트가 잘 로드됩니다.

#> ./zap.sh

댓글 없음:

댓글 쓰기