메일로 요청주신 정보 전달드립니다
안녕하세요, 메일로 소통했었는데 여기에 답변남깁니다
메일 : get7474
JDK버전 : 1.7.0_80(JVM 옵션으로 TSLv1.2 설정되어있습니다)
WAS (웹서버) 벤더명 : jeus8
확인 부탁드리겠습니다
감사합니다
24 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
담당자님, 확인 감사합니다.
소통하던 메일로 회신해드렸습니다.
메일 확인했습니다
JDK 1.7 버전에 대응 가능한 xpay client에 TLS 버전이 바껴서 통신될만한 소스가 있는걸까요 ?
1.7 자체가 매우 오래된 버전이어서,
이를 특별하게 대응하는 빌드를 제공하는 것 입니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
JDK1.7 버전용 xpay client 적용했을때도 구 도메인, 신규 도메인 상관없이 오류 발생했어요
그래서 되돌린 후에
결제하는 java 소스에 아래 3줄 추가해도 신규도메인은 결제 실패라고 뜨네요
SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(null, null, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
결제요청 로그를 techsupport@tosspayments.com 으로 전달 부탁 드립니다.
메일확인했습니다.
보내주신 로그 맨 마지막을 보면 결제성공으로 나오는데..위 에러는 이후 도메인 변경시 발생한 에러인가요?
결제 성공들은 다 old 붙은 도메인 적용시에 된 것들이고, javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 에러 발생했을 때는 신규 도메인 적용했을 때입니다
네 일단 정리를 좀 해볼게요.
1) 일단 lgdacom.conf 내 도메인은 구 도메인으로 원상복구 해주세요
2) 결제테스트를 다시 해보시고, 주문번호나, 로그에 기록된 kyeongvn75-012024121715543990d926354ef35a5647a1f2b9c9808217999897e2 와 같은 값을 여기 공유부탁드립니다.
일단 여기까지 한후 좀더 확인하여, 추가 수정사항 공유드리겠습니다.
라이브러리변경과 TLS 1.2 적용을 먼저 확인하려고 합니다.
1) old 붙은 도메인으로 되어있는 상태입니다
네. 라이브러리 교체는 15:54 이전에 하신건가요? (보내주신 로그가 교체이후 테스트해서 기록된 로그라고 봐도 될까요?)
나머지는 메일로 회신드리겠습니다
메일로 회신드렸습니다. 확인부탁드립니다.
라이브러리 교체를 15시 17분 전후로 했던 것 같습니다
되돌린 시간은 15시 35분 전후인 것 같습니다
네 일단 로그를 보면, 라이브러리 변경이 안되서..xpayClient 에서 TLS1.2 요청을 못하는 상태입니다. 순차적으로 확인하실수 있도록 메일 전달드렸으니 확인부탁드립니다.
네 메일 확인했습니다
라이브러리 교체했을 때 이 zip 파일의 라이브러리들로 다 교체했었습니다(캡처)
1) was 내 hosts 파일에 아래 도메인 / IP 를 추가 -> 되어있음
2) 아래 IP에 대한 방화벽 오픈
210.98.141.15:443/TCP
210.98.141.16:443/TCP
103.182.250.5:443/TCP
103.182.251.5:443/TCP
-> 되어있음
3) WAS 기동 옵션 내 JAVA HOME 디렉토리 설정이나, -D 옵션이 설정된 위치에 다음과 같은 명령어를 추가
-> 되어있음
4) XpayClient.jar 파일을 최신버전으로 변경
-> 어제 로그에 포함된 시간에 테스트 했었던 버전은 TossPayments_no_session_JSP_JDK17 zip 파일 내에 있던 버전입니다(캡처 참조)
테스트 후 에러 발생하여 바로 원복한 상태
5) 결제창호출페이지 내 script js 주소 변경
-> 되어있음
6) lgdacom.conf 의 url 변경
-> 어제 로그에 hand-shake 에러 발생했던 시간대에 https://xpay-gateway.tosspayments.com/xpay/Gateway.do 적용 했다가 바로 원복한 상태
현재는 https://xpay-gateway-old-and-unsafe.tosspayments.com/xpay/Gateway.do 주소로 되어있음
7) mall.conf 의 아래 항목 설정 (없을경우 신규등록)
-> default_secure_protocols = 2048 까지 되어있음
verify_cert = 0, verify_host = 0는 아직 테스트 전입니다
기관에서는 현재 JDK 버전을 7에서 8로 업데이트를 요청하고 있어서 일단 내부적으로 검토 후에 verify_cert = 0, verify_host = 0 테스트해볼 수 있을 것 같습니다
https://xpay-gateway-old-and-unsafe.tosspayments.com/xpay/Gateway.do
이 주소는 2025년 3월 31일에 만료되는 주소인가요 ?
네 맞습니다. 해당 주소는 내년 3월까지 제공할 예쩡입니다.
일단
4) XpayClient.jar 파일을 최신버전으로 변경
-> 어제 로그에 포함된 시간에 테스트 했었던 버전은 TossPayments_no_session_JSP_JDK17 zip 파일 내에 있던 버전입니다(캡처 참조)
테스트 후 에러 발생하여 바로 원복한 상태
여기를 해결해야 할것 같아요..혹시 어떤 에러가 난건지 알수 있을까요?
타 가맹점에서도 비슷한 에러가 난적이 있었는데, 저 압축파일 패키징에 있던 common-httpclient3.1 이 충돌이 났었던것 같습니다. 일단 지금 원복을 한 상태이니, 어제 메일로 답변드린
https://drive.google.com/file/d/1H-bhx5JSBKyCofjBoCchxA84EKmg5PEM/view
요 파일만 이름바꿔서 교체를 해보시겠어요?
Google Docs
XPayClient1031.jar
새로주신 파일에는 혹시 어떤게 바꼈을까요 ?
이 파일로 교체 후 신규 도메인으로 테스트를 했는데 잘 되고 있어서
이 파일안에서 TSL 설정 관련된 부분이 있는건가요 ?
전 압축파일 패키징에 있던 common-httpclient3.1 이 충돌이 났었던것 같습니다.
이전에 주셨던 모듈들을 사용했던 가맹점들에서는 모두 충돌이 났었던걸까요 ?
최종적으로 주신 모듈이 가장 최신 모듈인건가요 ?
아니오 그렇지 않습니다.
* 귀사에서 원래 쓰던 xpayClient.jar는 TLS 1.2 가 지원되지 않는 구버전입니다.
이 버전으로는 TLS 1.2 통신이 안되기 때문에, 최신버전으로 변경을 해야 합니다.
* 일차로 전달드렸던 링크
TossPayments_no_session_JSP_JDK17 이건 JDK 1.7 기반으로 재컴파일된 최신버전입니다. 다만 함께 패키징된 공용라이브러리인 common-httpclient3.1 기반으로 함께 작동되기 때문에 교체를 안내드린것입니다.
* 어제 이 버전으로 교체후 에러가 나서 전체 원복을 하신 상태이며,
저희가 금일 오전 다른 버전으로 xpayClient.jar 를 컴파일하여 전달드렸습니다. 어제전달드린 라이브러리와 버전은 동일하며, common-httpclient3.1 의 의존성만 제거한 버전입니다 (나머지는 어제 전달드렸던 내용과 동일한 버전입니다.)
정리를 하면, 오늘 오전에 전달드린 XpayClient1031 로 교체후 지금 정상적으로 잘 작동이 된다면, 라이브러리 교체가 잘된 것으로 보면 됩니다.
금일 로그 확인시
XPayClient (4.0.0.0/Java/HttpClient 3.x) SecureProtocols(2048)
로 버전변경도 잘됬고,
xpay-gateway.tosspayments.com:443 TLS1.2 로 잘 승인요청도 되었습니다.
네 지원해주셔서 덕분에 잘 해결되었습니다
감사합니다