결제 모듈 XpayClient.jar 작년 연말에 TLS1.2관련하여 업그레이드

하였습니다. 이번에 공공서비스를 새로 계약하게 되어 기존 서비스중인 시스템을 보니 자바 버전이 [publicWAS:/tmax/jeus7/bin]java -version java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode) 으로 토스결제모듈이 붙어 있습니다. 제우스가 기존 다른서비스중이라 자바 업그레이드가 힘들다고 하여 확인차 질문 합니다. 구버전 XpayClient.jar 가 여전히 사용가능하고 문제가 없는것인지요? 저희는 작년에 가이드 라인에 따라 맞추어 수정하여 업데이트 하였습니다. 지금 다운그레이드를 해서 확인을 해봐야 하는데 혹시 된다면 앞으로도 문제가 없을지 회신 부탁드립니다.
No description
56 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
아이윌소프트
아이윌소프트OP17h ago
운영중인 시스템창의 결제 창은 이렇게 뜨고 있구요.
No description
아이윌소프트
아이윌소프트OP17h ago
새창으로 결제창이 나타나고 있습니다.
No description
아이윌소프트
아이윌소프트OP16h ago
기존업체는 XpayClient.jar 활용하지 않고 결제 하는 방식으로 개발을 변경한건지 확인이 필요합니다. 호출은 동일한것으로 확인되었습니다. 1. 전에 안내 받을때 기존 상점은 올해 3월까지 마지노선으로 업그레이드를 해야된다고 안내받았던거 같은데. 기존상점은 지금도 이용이 계속 가능한것인지 2. js라이브러리 호출주소만 uplus에서 toss로 새로주신것으로 변경하면 문제가 없는지도 궁금합니다.
Minsu Kim
Minsu Kim16h ago
이건 연동하기 나름이어서 상관이없어요 전환은 하시면 기존결제 취소가 안되실거라 권장은 안드립니다 JDK 버전과 TLS 버전쪽은 체크해서 알려드릴게요 cc @박의원
아이윌소프트
아이윌소프트OP16h ago
네 확인부탁드리겠습니다.
박의원
박의원16h ago
위에 문의주신 곳의 상점ID나 가장최근 주문번호를 회신주시기 바랍니다. JDK 1.7.0_80 이면, TLS 1.2 는 쓸수 있습니다 (단 기본설정이 비활성화 되어 있어서 JVM에서 켜줘야함)
아이윌소프트
아이윌소프트OP16h ago
제가 확인해보니 mall.conf 내용이 기존 서버는 보니 기존에 설정을 그대로 있는것으로 보여집니다. keystore_cacertsdir=///__/openjdk-8u262-b10/jre/lib/security/cacerts 저희는 가이드대로 자바경로가 입력되어 있고요. bgmc7bp 저희가 아직운영중이지 않고 개발단계라 주문번호확인은 어렵습니다.
박의원
박의원16h ago
예 mall.conf 에 있는 mid 를 회신주시기 바랍니다. 일단 거래를 내봐야 저희쪽 서버에 어떻게 들어오는지 확인이 가능할듯 합니다
아이윌소프트
아이윌소프트OP16h ago
북구국민체육센터 bgmc7bp 상점id입니다. 기존업체는 업그레이드를 안했는지 maill.conf내용도 ;server_id Mall 서버를 구분을 위한 값 server_id = 01 ;timeout API 요청 timeout 시간 (단위:초) timeout = 120 ;log_level 0: FATAL; 1: ERROR; 2: WARNING; 3: INFO; 4: DEBUG log_level = 4 ;verify_cert 1: 인증서 검증; 0: 인증서 검증하지 않음 verify_cert = 0 ;verify_host 1: 인증서 내의 domain name 확인; 0: 확인하지 않음 (test 시만 사용) verify_host = 0 ;report_error 1: error 시 dacom 서버에 report 전송; 0: 전송하지 않음 (error 관련 내용만 전송함) report_error = 1 ;output_UTF8 1: 서버 응답을 UTF-8로 return; 0: EUC-KR로 리턴 output_UTF8 = 1 ;auto_rollback 0: 자동취소 사용안함, 1: 자동취소 사용 auto_rollback = 1 ; 512 (TLS1.1) , 2048 (TLS1.2) , 2560 (TLS1.0) java / php 버전 default_secure_protocols = 2048 ;log_dir log directory full path log_dir = /data/files/cms/lgdacom/log ;>>>>>>>>>>>>>>>>>>>> 반드시 입력해 주세요 <<<<<<<<<<<<<<<<<<<< ;Mert ID = Mert Key(서비스, 테스트 두개의 상점 아이디를 모두 등록해주세요.) ;Mert ID는 LG데이콤으로 부터 발급받으신 상점아이디를 입력하세요. ;Mert Key는 상점관리자 -> 계약정보 -> 상점정보관리에서 확인하실수 있습니다. ;예시) ;>>>>>>>>>>>>>>>>>>>> 반드시 입력해 주세요 <<<<<<<<<<<<<<<<<<<< 이렇습니다.
박의원
박의원16h ago
서버IP가 211.x.x.13 맞나요?
아이윌소프트
아이윌소프트OP16h ago
네 맞습니다.
박의원
박의원16h ago
마지막 결제가 어제 저녁이었는데, 네 여긴 이미 대응됬습니다. TLS 1.2 이고, cipher suite도 대응완료상태입니다. 다만 하나 수정할게 있는데요..TLS 와는 관계는 없고 lgdacom.conf 를 보시면 지금 url이 이렇게 되어 있을겁니다. url = https://xpayclient.tosspayments.com/xpay/Gateway.do
박의원
박의원16h ago
이렇게 되어 있나요? 네네 저것만 바꿔주세요 아래처럼 바꾸시면 됩니다
아이윌소프트
아이윌소프트OP16h ago
아래쪽처럼 지금 되어 있습니다.
박의원
박의원16h ago
네 가이드받은대로 수정해주세요
아이윌소프트
아이윌소프트OP16h ago
저쪽소스는 저희가 수정할 권한이 없습니다.
박의원
박의원16h ago
지금 적용된 URL은 TLS 1.2 는 되지만
아이윌소프트
아이윌소프트OP16h ago
저 시스템 대신 들어가야되는데
박의원
박의원16h ago
DNS 이중화가 안되서 나중에 DDOS 나 저희쪽 장애로 문제가 있을때 거래전환을 못하고 터집니다 정리를 좀 드릴께요 * 지금 TLS 1.2 대응은 이미 된 상태입니다. * 대신 도메인을 안바꾸면 나중에 토스페이먼츠 장애났을때 거래전환이 불가합니다 그래서 lgdacom.conf 수정권한이 있으신 담당자께서 가이드대로 url 만 수정하시면 됩니다
아이윌소프트
아이윌소프트OP16h ago
이건 뭔가요?
No description
박의원
박의원16h ago
따로 jdk 업그레이드나 was 설정을 변경할 필요는 없습니다 어디서 보신건가요?
아이윌소프트
아이윌소프트OP16h ago
저희쪽은 ;server_id Mall 서버를 구분을 위한 값 server_id = 01 ;timeout API 요청 timeout 시간 (단위:초) timeout = 60 ;log_level 3: INFO; 4: DEBUG log_level = 3 ;verify_cert 1: 인증서 검증; 0: 인증서 검증하지 않음 verify_cert = 1 ;verify_host 1: 인증서 내의 domain name 확인; 0: 확인하지 않음 (test 시만 사용) verify_host = 1 ;report_error 1: error 시 dacom 서버에 report 전송; 0: 전송하지 않음 (error 관련 내용만 전송함) report_error = 1 ;output_UTF8 1: 서버 응답을 UTF-8로 return; 0: EUC-KR로 리턴 output_UTF8 = 0 ;auto_rollback 0: 자동취소 사용안함, 1: 자동취소 사용 auto_rollback = 1 ;log_dir log directory full path (로그 생성위치에 log 폴더를 반드시 만들어야 로그가 쌓임) log_dir = C:\lgdacom\log ; 512 (TLS1.1) , 2048 (TLS1.2) , 2560 (TLS1.0) java / php 버전 default_secure_protocols = 2048 ;인증서위치 (고객사의 인증서 위치에 맞게 수정이 필요합니다.) ;keystore_cacerts_dir=C:\java\jre_8u421\lib\security\cacerts 이렇게 안내받았는데 작년에 시설 담당자분이 TLS1.2 관련 업글해야된다고 토스에서 연락이 와서 가이드 안내 받은거 캡쳐 해놓은 이미지 입니다.
박의원
박의원16h ago
작년이면 너무 오래되서, 저희쪽 로그확인이 좀 어려운데요.
아이윌소프트
아이윌소프트OP16h ago
;keystore_cacerts_dir=C:\java\jre_8u421\lib\security\cacerts 이부분이 결제후에 응답받을때 요고 제대로 안되어 있으면 결제가 취소되더라구요.
박의원
박의원16h ago
당시 메일을 보냈을때 TLS 1.2 미적용 업체를 대상으로만 메일을 보냈습니다.
아이윌소프트
아이윌소프트OP16h ago
네 저희가 아무래도 1.2미적용업체였을겁니다.
박의원
박의원16h ago
지금 문의가 좀 혼재되어 있는데요 TLS 1.2 적용에 대한 문의이신가요 결제후 자동취소되는 문제에 대한 문의이신가요 두개가 전혀 다른 이슈라서요
아이윌소프트
아이윌소프트OP16h ago
1.2적용에 대해서 입니다.
박의원
박의원16h ago
TLS 1.2 는 어제 거래 기준으로 보면 이미 대응이 되어 있어서 따로 하실것이 없습니다
아이윌소프트
아이윌소프트OP16h ago
오해가 있으신게 자바최소 버전으로 안내되어 있는데
박의원
박의원16h ago
작년거래는 저희 로그확인이 안되서 (3개월분까지만 가능)..당시 어떤 기준으로 보냈는지 확인이 좀 어려운 상태입니다. 네
아이윌소프트
아이윌소프트OP16h ago
keystore_cacerts_dir=C:\java\jdk1.7.0_80\jre\lib\security\cacerts 이부분이 세팅이되어야 저희는 결제가 되는데 저기쪽은 1.2대응이되었다고하든ㄴ데 자바버전이 1.7에 80버전이라 저희가 새로 받은 라이브러리로는 저기서 작동을 안해서 새로 받았다는건 당시 보내주신 라이브러리입니다. 지금 서버 쪽 와스가 다른 서비스와 연계되어 있어
박의원
박의원16h ago
keystore_cacerts_dir=C:\java\jdk1.7.0_80\jre\lib\security\cacerts 이 설정은 TLS와 관계없습니다. ;verify_cert 1: 인증서 검증; 0: 인증서 검증하지 않음 verify_cert = 1 ;verify_host 1: 인증서 내의 domain name 확인; 0: 확인하지 않음 (test 시만 사용) verify_host = 1 이 설정이 되어있을경우 필수로 설정하는 값입니다. 혹시 당시 받으신 메일내용과 라이브러리를 techsupport@tosspayments.com 으로 보내주실수 있으실까요?
아이윌소프트
아이윌소프트OP16h ago
저희 시스템이 들어갈려면 XPAYCLIENT.JAR 이거 오류날거라 문제가 되어서 문의드립니다 당시 자바버전이 낮으니 11월 19, 2024 6:01:37 오후 org.apache.catalina.core.StandardWrapperValve invoke 심각: 경로 [/uljusiseol]의 컨텍스트 내의 서블릿 [appServlet]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Handler dispatch failed; nested exception is java.lang.UnsupportedClassVersionError: lgdacom/XPayClient/XPayClient : Unsupported major.minor version 52.0 (클래스 [lgdacom.XPayClient.XPayClient]을(를) 로드할 수 없습니다)]을(를) 발생시켰습니다. java.lang.UnsupportedClassVersionError: lgdacom/XPayClient/XPayClient : Unsupported major.minor version 52.0 (클래스 [lgdacom.XPayClient.XPayClient]을(를) 로드할 수 없습니다) at 이런오류가 나오더라구요 그래서 당시 서버 관리업체에서 자바도 업그레이드 해주셨거등요 최소 버전 가이드대로 맞춘다구요.. 이번에 새로 계약한 여기 시설은 구버전 자바를 계속 그대로 사용하고 있어서 문의하게 된것입니다.
박의원
박의원16h ago
verify_cert = 1 verify_host = 1 일때 keystore_cacerts_dir=C:\java\jdk1.7.0_80\jre\lib\security\cacerts 이 설정이 안되어 있으면, 결제가 안되는건 맞습니다. 하지만 SSL handshake 에러나 인증서 검증에러가 나지 TLS 통신불가 에러가 나지는 않습니다. 네..그럼 좀 요약을 하면 중요한건..현재 연동예정인 위 MID 사용업체가 정상적으로 작동되는지를 체크하시고자 하는것이지요?
아이윌소프트
아이윌소프트OP16h ago
네 맞습니다. 저희도 다운그레이드를 해야 하는 상황이 온다면(서버에 자바버전말해놓기 했는데 다른서비스들때문에 업글이 될지 몰라 안된다면 차선책으로 ) 저업체가 사용하는 라이브러리로 변경할려고 합니다.
박의원
박의원16h ago
예 지금 211.x.x.13 이곳은
아이윌소프트
아이윌소프트OP16h ago
verify_cert = 1 verify_host = 1 이 옵션때문에 자바최소버전이 필요한건가요 ;;; 저희가 다운그레이드 했는데 당시 가이드 대로 갑자기 막히면 문제가 되기 때문에 저희한테는 올해 3월까지라고 마지노선도 주시면서 안내해주셨거등요
박의원
박의원16h ago
TLS 관련한것은 아무것도 안하셔도 됩니다.
아이윌소프트
아이윌소프트OP16h ago
작년말에 시작해가지고..
박의원
박의원16h ago
jdk 버전과 TLS와 관련해서 말씀드리면 TLS 1.2 가 지원가능한 최소버전이 jdk 1.7u80입니다
아이윌소프트
아이윌소프트OP16h ago
안녕하세요 토스페이먼츠 입니다. JDK 1.7 에서 빌드한 xpayClient 를 전달드립니다. 다운로드 링크 : https://drive.google.com/file/d/1wRWJf3p6HXcoMSpBSyB88ScJZ5iABqpY/view?usp=drive_link 다운로드 및 압축해제후 \Xpay57\WebContent\WEB-INF\lib 폴더안을 보시면 XPayClient1031.jar 가 있습니다. 기존의 XPayClient.jar 를 백업하신후, 이 파일을 XPayClient.jar 로 교체후 적용해보시기 바랍니다. (원본은 꼭 백업해주시기 바랍니다) 감사합니다. 이런 내용을 전달로 지금 보내드리면 될까요 토스랑 주고받은 메일요.
박의원
박의원16h ago
그런데 이 버전도 좀 제약이 많습니다. 대표적으로 TLS 1.2 를 활성화하기 위한 dk.tls.client.protocols 프로퍼티를 사용할수가 없습니다. 대신 jvm 옵션등을 통해 80버전에서도 TLS 1.2를 쓸수는 있습니다 제일 확실한건 1.7 => 1.8 로 올리는건데 이건 사실상 불가하기 때문에 1.7 최후버전인 131 로 업데이트 하는것을 권장드리는 것입니다. 단 1.7 의 경우 기존의 xpayClient.jar를 못쓰기 때문에 저희쪽에서 따로 1.7용 xpayClient.jar를 받으셔야 하는거구요 지금 말씀주신곳이 jdk 7 u 80 이라고 하셨는데, 어제 거래 기준으로 확인시 이미 TLS 1.2 로 결제가 잘 올라오고 있습니다. keystore_cacerts_dir=C:\java\jdk1.7.0_80\jre\lib\security\cacerts 이건 위에도 말씀드렸지만, 이걸 설정해야만 TLS 1.2를 쓰는것이 아닙니다. verify_cert = 1 verify_host = 1 로 설정시에만 쓰는 옵션입니다. 이걸 0 으로 모두 설정하면 keystore_cacerts_dir 는 설정안해도 됩니다. (대신 보안에 매우 취약해짐)
아이윌소프트
아이윌소프트OP16h ago
그럼 저희쪽 시스템을 저기 올라온 라이브러리로 변경하고 설정값도 동일하게 하면 문제가 없겠네요 제약이 많다는데 어떤 제약이 있는지 제가 알수 있을까요? 아 보안에 매우 취약해진다고 제가 말씀드리면 되겠네요?
박의원
박의원16h ago
TLS 1.2 로 설정하는 가장 많이 쓰는 방법은 많이 검색되는 -Djdk.tls.client.protocols=TLSv1.2 인데, 이 방법은 7u95 이상에서만 지원됩니다. 7u80에서는 이 방법으로 기본값을 바꿀 수 없습니다. 그런데 이미 지금 TLS 1.2 로 통신이 되고 있어서..다른방법으로 TLS 1.2 설정을 해두신것 같네요.
아이윌소프트
아이윌소프트OP16h ago
서버 담당하시는 분이 이렇게 복잡하게 세팅을 해줬다면 뭔가 이유가 있겠네요;;; 80에서 지원도 안되는걸 구지 자바 업그레이드 안하고 -_- 다른방법으로 TLS1.2를 설정해둔거 보면요.
박의원
박의원16h ago
13 번 서버는 이미 다 대응이 되어 있어서 따로 할것이 없습니다. 만일 다른 서버에 13번과 동일하게 설정하려고 한다면..네 똑같이 설정하시고 동일 라이브러리를 쓰시면 될것 같습니다.
아이윌소프트
아이윌소프트OP16h ago
네 감사합니다. 무슨말씀인지 잘알아들었고 공민 충분히 해소되었습니다. 고민 충분히 해소되었습니다. 감사합니다.
박의원
박의원16h ago
80버전의 경우 제일 많이쓰는 저게 안되고 JVM 설정 -Dhttps.protocols=TLSv1.2 JAVA설정 System.setProperty("https.protocols", "TLSv1.2"); SSLContext ctx = SSLContext.getInstance("TLSv1.2"); ctx.init(null, null, null); SSLSocketFactory f = ctx.getSocketFactory(); // 소켓 생성 후 SSLSocket s = (SSLSocket) f.createSocket(host, port); s.setEnabledProtocols(new String[] { "TLSv1.2" }); 이걸 일일히 다 해줘야 해서 저걸 해도 webToB (또는 톰캣) 버전이 낮으면 TLS 1.2 가 안됩니다.. 이것저것 봐야할게 많아서 그래서 기왕이면 8로 업데이트 하고, 그래도 안되면 7u131 버전으로라도 하시도록 가이드를 드린것 같습니다.
아이윌소프트
아이윌소프트OP16h ago
네 무슨말씀인지 알겠습니다.. 당시 가이드도.. 최선책을 안내한거였었다고 잘알아들었습니다.
박의원
박의원16h ago
지금 13번 서버는 u80인데도 TLS1.2 로 잘 올라오는것을 보면..아무래도 저런 설정을 다 해주신듯합니다. 네네 감사합니다.
아이윌소프트
아이윌소프트OP15h ago
네 . 수고하십시고 감사합니다. 💯

Did you find this page helpful?