안녕하세요.
간단하게 Get 호출 테스트 하려고 하는데 아래와 같이 에러가 나옵니다... 자바 버전이 잘못 된 것 같아 Open JDK 1.7, 1.8, Oracle JDK 1.7, 1.8 다 해봤지만 결과가 같습니다. 도움 주시면 정말 감사하겠습니다. 2020-01-16 05:34:14,602 INFO starting, will do 10 runs 2020-01-16 05:34:14,602 INFO Start time is 1579152854603 ms since Epoch 2020-01-16 05:34:14,658 INFO before thread. init headers and cookies 2020-01-16 05:34:14,659 INFO before thread. init headers and cookies 2020-01-16 05:34:14,659 INFO before thread. init headers and cookies 2020-01-16 05:34:14,659 INFO before thread. init headers and cookies 2020-01-16 05:34:14,660 INFO before thread. init headers and cookies 2020-01-16 05:34:14,660 INFO before thread. init headers and cookies 2020-01-16 05:34:14,660 INFO before thread. init headers and cookies 2020-01-16 05:34:14,660 INFO before thread. init headers and cookies 2020-01-16 05:34:14,660 INFO before thread. init headers and cookies 2020-01-16 05:34:14,661 INFO before thread. init headers and cookies 2020-01-16 05:34:16,264 ERROR Received fatal alert: unexpected_message javax.net.ssl.SSLException: Received fatal alert: unexpected_message at HTTPClient.HTTPConnection.sendRequest(HTTPConnection.java:3147) ~[grinder-httpclient-3.9.1.jar:na] at HTTPClient.HTTPConnection.handleRequest(HTTPConnection.java:2883) ~[grinder-httpclient-3.9.1.jar:na] at HTTPClient.HTTPConnection.setupRequest(HTTPConnection.java:2675) ~[grinder-httpclient-3.9.1.jar:na] at HTTPClient.HTTPConnection.Get(HTTPConnection.java:986) ~[grinder-httpclient-3.9.1.jar:na] at net.grinder.plugin.http.HTTPRequest$2.doRequest(HTTPRequest.java:504) ~[grinder-http-3.9.1.jar:na] at net.grinder.plugin.http.HTTPRequest$AbstractRequest.getHTTPResponse(HTTPRequest.java:1276) ~[grinder-http-3.9.1.jar:na] at net.grinder.plugin.http.HTTPRequest.GET(HTTPRequest.java:499) ~[grinder-http-3.9.1.jar:na] at net.grinder.plugin.http.HTTPRequest.GET(HTTPRequest.java:474) ~[grinder-http-3.9.1.jar:na] at net.grinder.plugin.http.HTTPRequest$GET$1.call(Unknown Source) ~[na:na] at TestRunner.test(Test.groovy:67) ~[na:na] at net.grinder.scriptengine.groovy.junit.GrinderRunner.run(GrinderRunner.java:170) ~[ngrinder-groovy-3.4.3.jar:na] at net.grinder.scriptengine.groovy.GroovyScriptEngine$GroovyWorkerRunnable.run(GroovyScriptEngine.java:147) ~[ngrinder-groovy-3.4.3.jar:na] at net.grinder.engine.process.GrinderThread.run(GrinderThread.java:118) ~[grinder-core-3.9.1.jar:na] 2020-01-16 05:34:16,266 ERROR Received fatal alert: unexpected_message javax.net.ssl.SSLException: Received fatal alert: unexpected_message at HTTPClient.HTTPConnection.sendRequest(HTTPConnection.java:3147) ~[grinder-httpclient-3.9.1.jar:na] |
Administrator
|
메시지만 봐서는 정확하게 알수 없지만.. 느낌에는 http 로 리턴하는 사이트에 https 로 호출을 시도하신것 같습니다.
|
안녕하세요. 주노윤님 답변해주셔서 감사합니다.
혹시 한번 더 답변해주시면 감사하겠습니다. 제가 좀 더 테스트를 해보니 https 구글 API URL이나 http URL은 정상적으로 테스트가 되는 것 같습니다. 해당 오류는 제가 A라는 별도의 서버에서 만든 API(https)를 호출 할 때만 나오는데 그럼 제가 A 서버에서 무언가를 수정해야 할까요? A 서버 인증서 및 Postman 등 에서 작동은 이상이 없었습니다. 혹시 짐작 가는 부분이 있으시면 말씀 부탁드립니다. 감사합니다. |
Administrator
|
해당 서버 URL 혹시 공개 가능한가요?
저 메시지로는 알 수 있는게 전혀 없어서요. 공개가 불가능하다면, https://www.feistyduck.com/library/openssl-cookbook/online/ch-testing-with-openssl.html 내용을 참조하셔서 직접 해결하셔야 할 듯 합니다. |
This post was updated on .
네, 해당 URL 입니다.
----------------------------- 도와주셔서 감사합니다. |
Administrator
|
TLS 의 문제로 보이구요..
@BeforeProcess public static void beforeProcess() { java.lang.System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2"); HTTPPluginControl.getConnectionDefaults().timeout = 6000 test = new GTest(1, "livr.epiclive.io") request = new HTTPRequest() grinder.logger.info("before process."); } 구문내에 java.lang.System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2"); 를 넣어서 실행해 보세요. |
정말 감사합니다. 성공 했습니다.
혹시 죄송하지만 왜 그런건지 설명 가능하시면 부탁드립니다... 제 서버 API의 TLS 문제인가요? 구글 서버 API는 해당 세팅을 안해도 되는데 왜 제 서버는 넣어야 하나요...? 제가 초보라서.. 비슷한 세팅을 하라는 글을 보고도 어디에 넣는지 몰랐습니다.. 감사합니다. |
아 찾은것 같습니다.
혹시 이것이 맞는지요..? https://freestrokes.tistory.com/68 => 위의 에러는 server와 client 간에 사용하는 SSL/TLS 버전이 맞지 않기 때문에 발생합니다. server가 TLS 1.2 버전만 사용할 때 Java의 경우 JDK 1.8 부터 TLS 1.2 가 기본 버전이므로 문제가 없지만, 이전 JDK 버전을 사용하는 client의 경우는 예외가 발생하게 됩니다. JDK 1.8 버전으로 업그레이드하면 문제가 해결되지만 그렇게 하기 어려운 경우 다음 방법으로 해결하면 됩니다. |
Administrator
|
In reply to this post by lsb
현재 분석중인데 말씀 드린 코드가 없을 경우,
ngrinder tls v1.2 를 지원안하는 것으로 보입니다. lsb님의 서버가 1.2 만 제공하도록 되어 있어서, ngrinder 랑 적절한 handshaking을 못했구요. |
네 알겠습니다. 더 찾아보겠습니다.
친절한 답변 감사드립니다. 좋은 하루 보내세요! |
Administrator
|
분석해보니.. 반대의 상황인것 같습니다.
ngrinder 는 SSLv2Hello,SSLv3LSv1,TLSv1.1,TLSv1.2 와 같이 SSL 지원 프로토콜을 보내는데 lsb님 서버가 SSL 프로토콜 handshaking시에 SSLv2Hello 라는 스트링을 전혀 인식 못하는 것 같아요. SSLv2Hello 는 워낙에 오래된 프로토콜이라.. 인식못해도 별 문제 없겠지만.. ngrinder 에서는 문제가 되는 군요. |
시간내서 분석 해주시고 감사드립니다.
그렇다면 그냥 SSLv2Hello 처럼 오래된 프로토콜은 무시하고 알려주신 코드로 다른 프로토콜 지정해서 한다면 부하 테스트 진행 하는 것에는 문제 없다고 생각해도 될까요? 감사합니다. |
Administrator
|
문제 없습니다. 2020년 1월 22일 (수) 오전 11:08, lsb [via ngrinder] <[hidden email]>님이 작성: 시간내서 분석 해주시고 감사드립니다. |
Free forum by Nabble | Edit this page |