SSL 오류관련
12월 31일 이후 결제시스템에서 갑작스럽게 오류가 나는데요.
http://xpayclient.lgdacom.net/xpay/Gateway.do로 기존에 요청을 해서 잘 됐었고
12/31부로 종료되어 신규 도메인으로 변경하였습니다.
기존에 TLS 1.2가 아니긴했으나 노션에는 TLS1.2를 3월 31일까지 지원한다고 되어있는데
뭐 추가적으로 설정해줘야 하는게 있을까요?
에러 내용 :
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.ibm.jsse2.SSLSessionImpl.getPeerCertificateChain(SSLSessionImpl.java:35)
at lgdacom.XPayClient.LgdacomSSLProtocolSocketFactory.verifyHostname(LgdacomSSLProtocolSocketFactory.java:342)
at lgdacom.XPayClient.LgdacomSSLProtocolSocketFactory.createSocket(LgdacomSSLProtocolSocketFactory.java:289)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at lgdacom.XPayClient.CTX.RequestHTTP(CTX.java:329)
at lgdacom.XPayClient.CTX.TX(CTX.java:415)
at lgdacom.XPayClient.XPayClient.TX(XPayClient.java:180)
11 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
지금 mall.conf 내용 확인가능하실까요?
여기 보시면 아래와 같은 항목이 있는데, 이 값이 1로 되어 있을겁니다. 0으로 변경후 정상결제 되는지 확인해보실수 있을까요?
;verify_cert 1: 인증서 검증; 0: 인증서 검증하지 않음
verify_cert = 0
;verify_host 1: 인증서 내의 domain name 확인; 0: 확인하지 않음 (test 시만 사용)
verify_host = 0
그리고 상점 MID 정보하고, mall.conf 에 아래의 내용이 기존에 있는지도 확인부탁드립니다.
;인증서위치 (고객사의 인증서 위치에 맞게 수정이 필요합니다.)
;keystore_cacerts_dir=C:\Program Files\Java\jre1.8.0_202\lib\security\cacerts
인증서가 WAS서버에 설치되어있지 않고 WEB서버에 설치되어있어서
인증서 위치를 어떻게 넣어야할지 모르겠네요..
기존에는 해당영역을 따로 입력하진 않았었습니다.
알려주신대로 0으로 값을 변경했더니
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.ibm.jsse2.o.a(o.java:30)
at com.ibm.jsse2.o.a(o.java:23)
at com.ibm.jsse2.SSLSocketImpl.b(SSLSocketImpl.java:356)
at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:58)
at com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:63)
at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:200)
at com.ibm.jsse2.k.write(k.java:11)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:76)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:134)
at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:506)
at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at lgdacom.XPayClient.CTX.RequestHTTP(CTX.java:329)
at lgdacom.XPayClient.CTX.TX(CTX.java:415)
at lgdacom.XPayClient.XPayClient.TX(XPayClient.java:180)
에러메시지가 변경됐습니다.
현재 상점아이디 제외한
mall.conf 파일 내용입니다.
;server_id Mall 서버를 구분을 위한 값
server_id = 01
;timeout API 요청 timeout 시간 (단위:초)
timeout = 60
;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
예 혹시 URL 변경후 결제가 된적이 있었나요?
일단 mall.conf의 설정은 지금 위대로 유지해주시고, lgdacom.conf 의 url 을 아래와 같이 변경해서 테스트 부탁드립니다. mid 정보도 같이 회신주세요
url = https://xpay-gateway-old-and-unsafe.tosspayments.com/xpay/Gateway.do
test_url = https://xpay-gateway-old-and-unsafe-sandbox.tosspayments.com/xpay/Gateway.do
변경하고 했는데 에러는 동일합니다.
mid가 상점아이디인가요? 입니다.
기존 결제난걸 보면, https://xpay.uplus.co.kr 가 아니라., http://xpay.uplus.co.kr 로..80으로 결제요청을 했네요..
서버에서 telnet 으로 아래 테스트 해보실수 있을까요?
telnet xpay-gateway.tosspayments.com 443
telnet xpay-gateway-old-and-unsafe.tosspayments.com 443
두번째 에러
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
이건 TLS 버전관련 에러인데..
url = https://xpay-gateway-old-and-unsafe.tosspayments.com/xpay/Gateway.do
test_url = https://xpay-gateway-old-and-unsafe-sandbox.tosspayments.com/xpay/Gateway.do
이렇게 변경된게 맞는지 다시한번 확인해주시겠어요 ? 이 url 은 TLS 에러가 발생할수 없는 에러라서요.
변경된것이 맞고, mall.conf 의 verify_cert = 0 , verify_host = 0 이 설정 이 변경된 것이 맞다면,
log_dir 에 기록된 오늘날짜 로그 전체를 techsupport@tosspayments.com 으로 전달부탁드립니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
안녕하세요.
보안문제때문에 telnet으로 확인은 어려울거같습니다.
요청하신 로그 메일로 방금 발송했습니다.!
메일로 회신 드렸습니다. 이것저것 확인할 사항이 많은데 확인후 회신부탁드립니다.
이후 문의는 가맹점 정보나 상황을 좀더 확인해야 하기 때문에, 디스코드가 아닌 이메일로 대응해드리겠습니다. 메일로 주셔도 5~10분내로 확인해서 회신드리겠습니다
감사합니다.