안녕하세요
서버 초급 개발자로 일하고 있습니다.
스프링으로 api 서버를 구현하고 있는데요.
클라이언트에서 1초 간격으로 요청이 들어오면 첫번째는 성공하고 두번째는 실패합니다. 실패 메시지는 “No close notify alert received before connection closed" 입니다
3초 간격으로 요청하면 문제없습니다.
SSL 인증서는 DMZ L4 스위치에 설치했고 내부망 통신은 http 입니다.
L4 스위치 설정을 바꿔야할까요? 아니면 스프링 설정을 건드려야 할까요..? 고수님들 도와주세요.
4개의 답변이 있습니다.
에러 메시지는
세션이 정상적으로 close되기 전에 세션이 종료되어 나타나는 메시지네요.
클라이언트와 서버간 SSL 연결이 비정상적으로 닫힌것 같습니다.
와이어샤크로 패킷 분석을 해서 어느 구간에서 세션을 잃어버리는지 체크 해보셔야겠어요
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입"연결이 종료되기 전에 수신된 종료 알림 경고 없음" 오류 메시지는 일반적으로 SSL/TLS 연결 종료 관련 문제를 나타냅니다. 이 문제는 서버측(Spring 애플리케이션)과 네트워크 인프라(L4 스위치) 모두의 잘못된 구성으로 인해 발생할 수 있습니다.
문제를 진단하고 해결하기 위해 참고해서 확인해보세요.
- 스프링 구성에서 Spring 애플리케이션이 SSL/TLS 세션 종료를 올바르게 처리하고 연결을 정상적으로 닫고 있는지 확인하세요.
- L4 스위치 설정에서 SSL/TLS 종료가 올바르게 구성되었는지(DMZ L4 스위치의 설정) 확인하세요.
(1) 필수 SSL/TLS 프로토콜 및 암호화 제품군을 지원 여부
(2) 연결이 조기 종료될 수 있는 L4 스위치의 세션 시간 초과 또는 연결 제한 설정 확인
(3) L4 스위치가 SSL/TLS 연결을 종료하고 HTTP 트래픽을 내부적으로 프록시하는 경우 요청을 Spring 애플리케이션에 올바르게 전달하는지 확인
마지막으로 DMZ L4 스위치에 SSL 인증서 설치를 다시 확인하여 올바르게 설치되었는지, 클라이언트가 Spring 애플리케이션에 액세스하는 데 사용하는 도메인 이름과 일치하는지 확인하세요.
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입L4에 idle time 설정을 늘리면 될것 같습니다.
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입http가 비연결성( Connectionless ), 무상태( stateless ) 이기 때문에 발생하는 문제로 보이네요.
연결을 해서 연결된 상태를 유지하면서 요청을 하고, 결과를 받고, 연결을 끊는 방식이라면 수행하려는 작업 내용에 문제가 생기지 않겠지만...
UDP와 유사하게 연결을 유지하지 않고 처리를 하고 있기 때문에 문제가 발생하는 것이 아닐까 싶네요.
네트워크를 통해서 클라이언트와 서버가 통신하면서 보낸 패킷들이 네트워크 상황에 따라 다양한 경로를 통해서 전달될 수 있기 때문에 먼저 보낸 패킷이 상황에 따라 늦게 도착할 수도 있겠는데...
1초 이내에 짧은 주기로 보낼 경우에 앞에 보낸 패킷보다 뒤에 보낸 패킷이 먼저 도착하는 경우가 빈번하게 발생하면서 이전 요청 처리 작업이 끝나지 않은 상태에서 다른 초청 처리 작업의 내용이 뒤죽박죽으로 서버에 전달되면서 작업 내용이 꼬이는것일 걸로 추정되네요.
연결을 유지하는 상태로 설정을 변경해서 시도해 보거나...
각 처리 단위마다 고유 ID 값을 가지게 해서 고유 ID값이 일치할때만 동일 작업으로 묶어서 처리되도록 하면 해결할 수 있는 내용이 아닐까 하는 생각이 드네요.
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입