운영 환경에서 SSL 오류 확인 부탁 드립니다.
결제 모듈 이후에 서버에서 결제승인 처리 하는데 아래와 같은 오류 만 stacktrace에 남아있습니다. 원인이 뭘까요?
javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
27 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
xpay인가요? 토스 api 방식인가요?
상점 MID 정보도 같이 회신부탁드립니다.
mid : assistotli
API 개별 연동 키 << 여기에 있는 정보로 쓰고 있습니다.
curl로 쐈을때는 응답을 받는데, 운영서버에서 만 위와 같은 오류가 나고 있어요
네 TLS 1.2 문제 같기도 한데요 . 개발언어는 JAVA이시죠? 서버 OS 가 어떻게 되시나요?
서버 쪽은 JAVA, 서버OS 아마존 기본 EKS OS인데 확인 해봐야 할거같아요
네 JDK버전은 어떻게 될까요?
17버전 쓰고있어요
네 혹시 개발쪽에서는 잘 됬고..운영에서만 에러가 나는건가요?
네 맞습니다
https://api.tosspayments.com/v1/payments/confirm << 여기로 승인 날리다가 생긴 오류입니다.
개발쪽은 맥북에 JDK17입니다.
개발 서버에서도 잘 되었습니다. toss키는 테스트 키로 진행했구요
네 알겠습니다. 일단 JDK17은 TLS1.2 가 지원되기는 하는데 기본지원은 아닐겁니다.
WAS 기동 옵션 내 JAVA HOME 디렉토리 설정이나, -D 옵션이 설정된 위치에 다음과 같은 명령어를 추가해보시겠어요?
-Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2
그러면. 개발 환경이나 테스트 키에서는 잘 되는 이유가, 환경이 다른걸까요?
네 그런것으로 보입니다.
JDK 버전이 다르시거나 한게 아닐까 싶어요.
JDK 1.8 이상은 저 옵션을 안넣어도 기본 설정인데, 1.7 은 WAS 설정에 따라 기본이 아닐수 있습니다
1.8, 1.7이 아니고 17버전 이에용
실제로 운영 서버에서 tomcat 을 동작시키는 JDK 버전을 확인해 보실수 있을까요?
말씀하신대로 17이면..TLS 1.2 기본인데요..냥과장님 말씀대로 운영/테스트 에서 각각 java - version 을 실행한 결과를 공유해줄수 있을까요?
네 확인 해보겠습니다~
자바는 17버전이 맞고, -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 << 넣어서 확인 해보겠습니다.
넵 테스트 결과 회신부탁드립니다.
동일하게 발생하는것 같습니다.
이건 운영하는 "서버" 와 "클라이언트" 쪽의 버전 차이도 보셔야 할것 같은데요.
현재 운영하는 환경을 기준으로 구글링을 좀 해보셔야 할것 같습니다
System.setProperty("https.protocols", "TLSv1.2");
이것도 한번 적용해보시겠어요?
Djavax.net.debug=ssl 요 옵션을 추가하면 ssl 핸드쉐이크 오류를 볼 수있다고 해서 추가후 확인 했습니다.
No X.509 cert selected for RSA 이런 오류가 떨어지고 있는거같아요
인증서 적용된 내용을 빼고 통신해보셔요
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
돌고돌아 방화벽이 막혀있었던 것이 원인이었습니다. 적극적인 대응 감사했습니다 🙂