규환
규환2mo ago

토스페이먼츠 lg U+ http 환경 테스트 가능 여부 문의

토스페이먼츠 lg U+ 결제 사용 중입니다. igdacom.conf 에서 test_url을 다음과 같이 설정했습니다. test_url = https://xpay-gateway-sandbox.tosspayments.com/xpay/Gateway.do http 환경에서 테스트 진행 시, javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 오류가 출력됩니다. 문의드릴 사항은, http 환경에서 test_url 을 사용한 결제 테스트는 불가능 한지 문의드립니다.
36 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee2mo ago
http 환겨에서는 가능한데 지금 에러로 보면 TLS 버전이 1.2 미만으로 보입니다. TLS 버전을 1.2 이상으로 올려주세요.
규환
규환OP2mo ago
tomcat 의 catalina.sh 에 아래처럼 추가 후 처리해도 동일한 오류가 뜹니다. JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dhttps.protocols=TLSv1.2"
Kimoon Lee
Kimoon Lee2mo ago
사용하시는 JDK 버전확인 가능하실까요?
규환
규환OP2mo ago
java version "17.0.12" 2024-07-16 LTS Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286) Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing) 입니다.
Kimoon Lee
Kimoon Lee2mo ago
mall.conf 파일에 default_secure_protocols 값이 어떻게 되어 있는지도 확인부탁드립니다.
규환
규환OP2mo ago
default_secure_protocols 값이 없습니다.
Kimoon Lee
Kimoon Lee2mo ago
그럼 xpayclient.jar 파일 버전 확인 가능하실까요?
규환
규환OP2mo ago
.jar 파일자체에 버전이 적혀있지 않고, MANIFEST.MF 에는 Manifest-Version: 1.0 만 적혀있습니다.
규환
규환OP2mo ago
버전 확인에 도움이 될까 .jar 에 있는 class 파일 보여드립니다.
No description
Kimoon Lee
Kimoon Lee2mo ago
16년도면 너무 예전 버전이네요.
Kimoon Lee
Kimoon Lee2mo ago
여기있는 라이브러리와 설정 파일들로 적용부탁드립니다.
규환
규환OP2mo ago
라이브러리 및 jsp 파일도 추가되어야 하는걸까요 ??
박의원
박의원2mo ago
아니요 라이브러리만 교체하시면 됩니다. 라이브러리 교체하시고 mall.conf 에 아래 내용을 추가해주시면 TLS 1.2 로 통신됩니다. default_secure_protocols = 2048
규환
규환OP2mo ago
라이브러리 교체하고 mall.conf 내용 추가하여 테스트 중인데, java.lang.NoClassDefFoundError: lgdacom/XPayClient/XPayClient 가 떠서 현재 확인중에 있습니다. 따로 연동 관련 오류가 날 시 재 문의 하겠습니다.
박의원
박의원2mo ago
혹시 1개월내 발생한 가장 최신 거래의 주문번호나 (취소도 관계없음) mid 정보를 알수 있을까요? 저희쪽 서버로그를 보고, 기존의 xpayClient 버전이 어떤것이었는지 확인키위합니다.
규환
규환OP2mo ago
1개월 내 결제 내역이 없습니다.
박의원
박의원2mo ago
네 알겠습니다.
규환
규환OP2mo ago
서버 환경 확인해보니, tomcat 에 사용하는 자바 버전이 1.7 인 것으로 확인되었습니다. 현재 올려주신 라이브러리에는 자바 1.8 버전 에서 컴파일 되어서 오류가 나고 있습니다. 죄송하지만, 자바 버전 1.7에서 컴파일한 XpayClient.jar 파일도 있을까요 ?
규환
규환OP2mo ago
감사합니다. 해당 파일로 테스트 해보겠습니다.
박의원
박의원2mo ago
이 파일을 받아서 이름변경후 올려주세요 그리고..jdk 1.7 이면 상황이 좀 많이 다른데..사실 1.8 이상이면 저 설정을 할 필요도 없고 라이브러리 교체도 필요가 없습니다. 일단 서버가 TLS 1.2 가 지원되는지를 봐야 할것 같은데요 import javax.net.ssl.; import java.net.; import java.io.*; public class Tls12Probe { public static void main(String[] args) throws Exception { String host = args.length > 0 ? args[0] : "example.com"; int port = args.length > 1 ? Integer.parseInt(args[1]) : 443; // TLSv1.2만 사용하도록 SSLContext와 소켓 구성 SSLContext ctx = SSLContext.getInstance("TLSv1.2"); ctx.init(null, null, null); SSLSocketFactory sf = ctx.getSocketFactory(); try (SSLSocket s = (SSLSocket) sf.createSocket(host, port)) { s.setEnabledProtocols(new String[] { "TLSv1.2" }); s.startHandshake(); SSLSession sess = s.getSession(); System.out.println("Protocol : " + sess.getProtocol()); System.out.println("CipherSuite: " + sess.getCipherSuite()); } } } 이거를 컴파일 후 실행해보시고, 결과가 어떻게 나오는지도 체크 부탁드립니다 Protocol 이 TLS 1.2 가 안나오면.. xpayClient.jar를 교체해도 통신이 안될겁니다.
Minsu Kim
Minsu Kim2mo ago
으로 코드를 감싸서 보내시면 읽는 분이 코드를 복사해서 사용하시기 수월해집니다!
저 상태에서는 마크다운이 동작해서 복사하면 깨지거든요
으로 코드를 감싸서 보내시면 읽는 분이 코드를 복사해서 사용하시기 수월해집니다!
저 상태에서는 마크다운이 동작해서 복사하면 깨지거든요
java import javax.net.ssl.; import java.net.; import java.io.*; public class Tls12Probe { public static void main(String[] args) throws Exception { String host = args.length > 0 ? args[0] : "example.com"; int port = args.length > 1 ? Integer.parseInt(args[1]) : 443; // TLSv1.2만 사용하도록 SSLContext와 소켓 구성 SSLContext ctx = SSLContext.getInstance("TLSv1.2"); ctx.init(null, null, null); SSLSocketFactory sf = ctx.getSocketFactory(); try (SSLSocket s = (SSLSocket) sf.createSocket(host, port)) { s.setEnabledProtocols(new String[] { "TLSv1.2" }); s.startHandshake(); SSLSession sess = s.getSession(); System.out.println("Protocol : " + sess.getProtocol()); System.out.println("CipherSuite: " + sess.getCipherSuite()); } } } ```
규환
규환OP2mo ago
넵 먼저 테스트 진행해보겠습니다. .jar 파일도 올려주신걸로 수정해보겠습니다. 감사합니다. 테스트 진행 시, Received fatal alert: handshake_failure 오류가 납니다. 소스 코드 상단에 System.setProperty("https.protocols", "TLSv1.2"); 를 추가해도 똑같은 오류가 나네요. 이 경우, 현재 테스트 자바를 1.8 버전으로 올리는 방법이 최선이겠네요. 우선, 자바 1.7 버전 중, TLSv1.2 가 지원되는 버전으로 변경을 먼저 해보겠습니다.
박의원
박의원2mo ago
jdk 1.7u95 (오라클 제공 마지막 1.7 버전) 이 아니면 TLS 1.2가 안될겁니다. 그리고 이걸 설치해도 JVM 및 웹서버 (톰캣 및 WebToB)에 환경설정을 변경해야 합니다. 가급적 jdk 1.8 이상으로 올리시는 것을 권장드립니다. TLS 1.2 이상이 되더라도, cipher suite 가 보안취약 알고리즘으로 들어오면 여기도 차단될수 있습니다.
박의원
박의원2mo ago
tosspublic on Notion
JAVA 플랫폼에서의 Cipher 설정 | Notion
1. 최소한 jdk 1.7u80 이상으로 JDK 업데이트가 필수입니다.
규환
규환OP2mo ago
jdk 1.7.0_80 버전으로 톰캣 catalina.sh 에 설정 추가와 결제 응답 부분에 System.setProperty("https.protocols", "TLSv1.2"); System.setProperty("jdk.tls.client.protocols", "TLSv1.2"); 추가하여 정상 처리 되었습니다. 테스트 성공한 mid 는 다음과 같습니다. tusjg202510220945084ocp9 감사합니다.
박의원
박의원2mo ago
네 저희쪽에도 TLS 1.2 로 정상적으로 들어왔습니다 다만, cipher suite 가 좀 보안이 취약한데요.. ECDHE-RSA-AES128-CBC-SHA 로 들어왔습니다.
박의원
박의원2mo ago
보안 | 토스페이먼츠 개발자센터
토스페이먼츠 API의 보안 정책과 방화벽 설정하는 방법을 안내합니다.
박의원
박의원2mo ago
위에 공유드린 노션링크 내 문서 참고하시어 이것도 함께 대응해주시면 추후 좋을것 같습니다.
규환
규환OP2mo ago
아 해당 테스트는 실제 운영하는 사이트가 아닌, 운영 업로드 전 개발서버에서 테스트 하는 용도이며, 다른 사람이 접근 못하게 되어있습니다. 실제 운영하는 사이트는 자바가 1.7.0_191 버전이며, test_url 이 아닌 url 을 사용합니다. 감사합니다.
박의원
박의원2mo ago
네 추후 저희 보안정책이 강화되면, 지금 정상적인 테스트서버가 추후 cipher suite 로 인해 동일하게 연결이 안될 가능성이 있어 대비차원으로 말씀드렸습니다.
규환
규환OP2mo ago
앗, 그럼 급한건 부터 처리 후 올려주신 cipher suite 처리 진행 하도록 하겠습니다. 알려주셔서 감사합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?