Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

classic Classic list List threaded Threaded
13 messages Options
lsb
Reply | Threaded
Open this post in threaded view
|

Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

lsb
안녕하세요.

간단하게 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]
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

junoyoon
Administrator
메시지만 봐서는 정확하게 알수 없지만.. 느낌에는 http 로 리턴하는 사이트에 https 로 호출을 시도하신것 같습니다.
lsb
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

lsb
안녕하세요. 주노윤님 답변해주셔서 감사합니다.

혹시 한번 더 답변해주시면 감사하겠습니다.


제가 좀 더 테스트를 해보니

https 구글 API URL이나 http URL은 정상적으로 테스트가 되는 것 같습니다.

해당 오류는 제가 A라는 별도의 서버에서 만든 API(https)를 호출 할 때만 나오는데

그럼 제가 A 서버에서 무언가를 수정해야 할까요?

A 서버 인증서 및 Postman 등 에서 작동은 이상이 없었습니다.

혹시 짐작 가는 부분이 있으시면 말씀 부탁드립니다.


감사합니다.
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

junoyoon
Administrator
해당 서버 URL 혹시 공개 가능한가요?

저 메시지로는 알 수 있는게 전혀 없어서요.

공개가 불가능하다면,

https://www.feistyduck.com/library/openssl-cookbook/online/ch-testing-with-openssl.html

내용을 참조하셔서 직접 해결하셔야 할 듯 합니다.
lsb
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

lsb
This post was updated on .
네, 해당 URL 입니다.

-----------------------------

도와주셔서 감사합니다.
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

junoyoon
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");

를 넣어서 실행해 보세요.
lsb
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

lsb
정말 감사합니다. 성공 했습니다.

혹시 죄송하지만 왜 그런건지 설명 가능하시면 부탁드립니다...

제 서버 API의 TLS 문제인가요?

구글 서버 API는 해당 세팅을 안해도 되는데 왜 제 서버는 넣어야 하나요...?

제가 초보라서.. 비슷한 세팅을 하라는 글을 보고도 어디에 넣는지 몰랐습니다..


감사합니다.
lsb
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

lsb
아 찾은것 같습니다.

혹시 이것이 맞는지요..?

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 버전으로 업그레이드하면 문제가 해결되지만 그렇게 하기 어려운 경우 다음 방법으로 해결하면 됩니다.

Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

junoyoon
Administrator
In reply to this post by lsb
현재 분석중인데 말씀 드린 코드가 없을 경우,
ngrinder tls v1.2 를 지원안하는 것으로 보입니다.

lsb님의 서버가 1.2 만 제공하도록 되어 있어서, ngrinder 랑 적절한 handshaking을 못했구요.
lsb
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

lsb
네 알겠습니다. 더 찾아보겠습니다.

친절한 답변 감사드립니다.

좋은 하루 보내세요!
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

junoyoon
Administrator
분석해보니.. 반대의 상황인것 같습니다.

ngrinder 는 SSLv2Hello,SSLv3LSv1,TLSv1.1,TLSv1.2 와 같이 SSL 지원 프로토콜을 보내는데

lsb님 서버가 SSL 프로토콜 handshaking시에 SSLv2Hello 라는 스트링을 전혀 인식 못하는 것 같아요.

SSLv2Hello 는 워낙에 오래된 프로토콜이라.. 인식못해도 별 문제 없겠지만.. ngrinder 에서는 문제가 되는 군요.
lsb
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

lsb
시간내서 분석 해주시고 감사드립니다.

그렇다면 그냥 SSLv2Hello 처럼 오래된 프로토콜은 무시하고

알려주신 코드로 다른 프로토콜 지정해서 한다면

부하 테스트 진행 하는 것에는 문제 없다고 생각해도 될까요?



감사합니다.
Reply | Threaded
Open this post in threaded view
|

Re: Ngrinder 샘플 스크립트 에러 - javax.net.ssl.SSLException: Received fatal alert

junoyoon
Administrator
문제 없습니다.

2020년 1월 22일 (수) 오전 11:08, lsb [via ngrinder] <[hidden email]>님이 작성:
시간내서 분석 해주시고 감사드립니다.

그렇다면 그냥 SSLv2Hello 처럼 오래된 프로토콜은 무시하고

알려주신 코드로 다른 프로토콜 지정해서 한다면

부하 테스트 진행 하는 것에는 문제 없다고 생각해도 될까요?



감사합니다.


If you reply to this email, your message will be added to the discussion below:
http://ngrinder.642.n7.nabble.com/Ngrinder-javax-net-ssl-SSLException-Received-fatal-alert-tp2582p2596.html
To start a new topic under ngrinder-user-kr, email [hidden email]
To unsubscribe from ngrinder-user-kr, click here.
NAML