HANDA개발
HANDA개발공부
HANDA개발
전체 방문자
오늘
어제
  • HANDA_list
    • 취업일지
    • 일상
    • TIL
    • Linux
    • RabbitMQ
    • Spring
      • Security
      • Batch
      • Project
    • ERROR
    • DB
      • Oracle
      • PostgreSQL
    • JUnit
    • JAVA
    • AWS
    • OAuth2.0
    • Redis
    • API
    • Jenkins
    • Nigix
    • CS
    • 코테준비
      • 자료구조
      • 알고리즘
    • 학교수업
    • 디자인패턴

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • @Valid
  • 프로그래머스
  • 역직렬화
  • JAVA명령어
  • 데이터베이스
  • JVM
  • mybatis
  • 프로시져호출
  • 어노테이션
  • java실행과정
  • 다른파라미터
  • valid어노테이션
  • garbaage
  • 스프링배치
  • cmd
  • EAI
  • 명령어
  • gson
  • 재실행
  • MQ
  • Job
  • 상태관리
  • Parameter
  • SpringBatch
  • 애플코딩
  • error
  • 공부준비
  • Spring
  • batch
  • oracle

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HANDA개발

HANDA개발공부

SSL Exception 해결하기. 500에러
TIL

SSL Exception 해결하기. 500에러

2022. 8. 29. 13:16

SSL이란 무엇인가요?

웹사이트 보안을 위한 방법, SSL이란? (feat. SSL과 HTTPS의 차이) : 네이버 블로그 (naver.com)

 

웹사이트 보안을 위한 방법, SSL이란? (feat. SSL과 HTTPS의 차이)

안녕하세요! 알기 쉽게 풀어쓴 보안 '알풀보'입니다. '알풀보'는 어려운 보안 용어와 ...

blog.naver.com

SSL(Secure Sockets Layer)은 암호화 기반 인터넷 보안 프로토콜입니다. 인터넷 통신의 개인정보 보호, 인증, 데이터 무결성을 보장하기 위해 Netscape가 1995년 처음으로 개발했습니다. SSL은 현재 사용 중인 TLS 암호화의 전신입니다.

SSL/TLS를 사용하는 웹사이트의 URL에는 "HTTP" 대신 "HTTPS"가 있습니다.

SSL/TLS는 왜 중요합니까?

원래 웹 상의 데이터는 메시지를 가로채면 누구나 읽을 수 있는 일반 텍스트 형태로 전송됐습니다. 가령 고객이 쇼핑 웹사이트를 방문하여 주문하고, 신용 카드 번호를 입력했다고 하면, 해당 신용 카드 번호가 숨겨지지 않은 채 인터넷을 이동하게 됩니다.

SSL은 이 문제를 바로잡고, 사용자 개인 정보를 보호하기 위해 제작됐습니다. SSL은 사용자와 웹 서버 사이를 이동하는 모든 데이터를 암호화하여, 누군가 데이터를 가로채더라도 무작위 문자만 볼 수 있게 합니다. 이제 고객의 신용 카드 번호는 안전해졌으며, 고객이 번호를 입력한 쇼핑 웹사이트만 이를 볼 수 있습니다.

SSL은 특정한 유형의 사이버 공격도 차단합니다. SSL은 웹 서버를 인증하는데, 공격자들이 사용자를 속여 데이터를 훔치기 위한 가짜 웹사이트를 만드는 일이 있기 때문에, 이러한 인증이 중요합니다. 또한 약병의 조작 방지 봉인처럼, 공격자가 전송 중인 데이터를 조작하지 못하게 막기도 합니다.

 

 

SSL Exception

SQL이 너무 길어서 생긴 에러다.

javax.net.ssl.SSLHandshakeException: Received fatal alert: record_overflow
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:804)
    at org.eclipse.jetty.server.HttpConnection.fillRequestBuffer(HttpConnection.java:322)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:231)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:289)
    at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:149)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
    at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591)
    at java.lang.Thread.run(Thread.java:748)
Caused by: javax.net.ssl.SSLException: Received fatal alert: record_overflow
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
    at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1666)
    at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1634)
    at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1800)
    at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1083)
    at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:907)
    at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
    at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:653)

 

해결 :  JVM 실행옵션 변경.

JVM 실행옵션의 JDK 프로토콜 버전을 아래와 같이 변경하면 SQL이 너무 길어서 생긴 SSL Exception이 해결된다.

 

If you're on Java 11 or 12, then the reason is probably a TLSv1.3 bug in the JDK.

The workaround is to disable TLSv1.3:

-Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2"

You can also try the latest JDK 13 early access to see whether the issue has been solved.

 

java - SSLHandshakeException: Received fatal alert: record_overflow - Stack Overflow

 

SSLHandshakeException: Received fatal alert: record_overflow

I am receiving the following error. Not sure what is causing this and how to fix this. This is happening on the server side which is using Netscalar for Load Balancing. javax.net.ssl.

stackoverflow.com

 

eclipse/sts 에서 톰캣 구동시 프로그램 파라미터 및 JVM option 설정하는 법

근데 왜 하나같이 jvm 실행옵션을 어디에 넣어줘야하는지 안 알려주는건지..................... 
구글쌤한테 열댓번 물어보고 찾아냈음.....

더보기

이클립스의 Server 기능을 이용하여 톰캣을 띄울 때 custom 파라미터를 전달하는 방법

  1. Server 탭을 두 번 클릭해서 옵션 창을 띄움
  2. Open launch configuration 선택
     
  3. Arguments 탭에서 VM arguments 에 추가할 JVM 옵션을 적어준다. (Ex: -Dspring.profiles.active=local)
     
  4. 저장하고 톰캣을 다시 띄운다.

https://www.lesstif.com/java/eclipse-sts-jvm-option-24445381.html

 

'TIL' 카테고리의 다른 글

wsl2 설치 및 도커설치  (0) 2022.09.13
DeadLock 피하기_커넥션풀 설정과 스레드 개수  (0) 2022.09.02
jackson 으로 json값 주고 받기 (+ gson)  (0) 2022.08.25
cmd 명령어 정리  (0) 2022.08.25
환경변수 설정.  (0) 2022.08.24
    'TIL' 카테고리의 다른 글
    • wsl2 설치 및 도커설치
    • DeadLock 피하기_커넥션풀 설정과 스레드 개수
    • jackson 으로 json값 주고 받기 (+ gson)
    • cmd 명령어 정리
    HANDA개발
    HANDA개발

    티스토리툴바