Xpay 사용자 방화벽 허용에 대하여
안녕하세요.
이번 dns 변경에 따른 허용 방화벽에 대해 한가지 질문이 있습니다.
최신문서 (XPAY결제모듈공통사항_v.1.0.8.docx) 에 나와있긴 하지만 업체 보안팀에서 확답을 원해서 여쭤보려합니다.
이메일로 공지해주셨던 아래 4개의 아이피 목록은 아웃바운드(운영웹 서버 -> 토스페이먼츠 서비스 서버) 만 하면 되나요?
210.98.141.15
210.98.141.16
103.182.250.5
103.182.251.5
혹시 양방향 통신이어서 인바운드도 허용해줄 필요는 없는거죠?
37 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
말씀 주신 IP 들은 아웃바운드 쪽에 추가 해주시면 됩니다.
인바운드 관련해서는 이미 설정 되어 있으실 겁니다.
혹시 모르니 전체 아이피 목록도 전달드려요
해당 아이피 모두
6.1번 표는 아웃바운드, 6.2번 표는 인바운드로 열려있으셔야 합니다.
넵 빠른 답변주셔서 감사합니다!
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
안녕하세요.
어제 dns변경 작업을 했는데 아래와같이 peer not authenticated 오류가 나서 문의드려봅니다.
잘 되던 운영서버라서 설정만 바꿔준건데 안되고 있어서 그런데 혹시 제가 더 시도해볼게 있을까요?
커뮤니티 서칭해서 verify_cert, verify_host를 0으로 만들어서 해보라는 것을 발견하긴 했었는데
대부분 이거는 테스트서버에 대한 응답이었던것같아서 운영서버에서 하기에는 조금 그래서 시도는 못해봤습니다.
사내 보안때문에 텍스트로만 보내드리는점 죄송합니다.
오류 메시지
2024-12-19 17:59:47 [DEBUG] [(거래번호)] javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificateChain(SSLSessionImpl.java:491)
at lgdacom.XPayClient.LgdacomSSLProtocolSocketFactory.verifyHostname(LgdacomSSLProtocolSocketFactory.java:399)
at lgdacom.XPayClient.LgdacomSSLProtocolSocketFactory.createSocket(LgdacomSSLProtocolSocketFactory.java:317)
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:330)
at lgdacom.XPayClient.CTX.TX(CTX.java:416)
at lgdacom.XPayClient.XPayClient.TX(XPayClient.java:205)
...
2024-12-19 17:59:47 [FATAL] [(거래번호)] TX failed: res code = 20010; msg = IO error; javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated^M
Version
Java: 1.8
Tomcat: 8.5
XPayClient: (이거는 어떻게 확인하는지 모르긴 하지만 원래 사용하던 구버전이긴합니다.)
script src
(기존)
<script language="javascript" src="https://xpayvvip.uplus.co.kr/xpay/js/xpay_crossplatform.js" type="text/javascript"></script>
(신규)
<script src="https://xpay.tosspayments.com/xpay/js/xpay_crossplatform.js"></script>
lgdacom.conf
(기존)
url = http://xpayvvipclient.uplus.co.kr/xpay/Gateway.do
test_url = https://xpay-gateway-sandbox.tosspayments.com/xpay/Gateway.do
aux_url = http://xpay.uplus.co.kr:7080/xpay/Gateway.do
(변경)
url = https://xpay-gateway.tosspayments.com/xpay/Gateway.do
test_url = https://xpay-gateway-sandbox.tosspayments.com/xpay/Gateway.do
telnet으로 방화벽 상태는 확인하였습니다. (4개의 아이피 모두 확인하였습니다.)
210.98.141.15
210.98.141.16
103.182.250.5
103.182.251.5
[]# curl -v telnet://xpay-gateway.tosspayments.com:443
* About to connect() to xpay-gateway.tosspayments.com port 443 (#0)
* Trying 210.98.141.16...
* Connected to xpay-gateway.tosspayments.com (210.98.141.16) port 443 (#0)
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
mall.conf
;TLS1.2통신
default_secure_protocols = 2048
keystore_cacerts_dir=(인증서위치)
;verify_cert 1: 인증서 검증; 0: 인증서 검증하지 않음
verify_cert = 1
;verify_host 1: 인증서 내의 domain name 확인; 0: 확인하지 않음 (test 시만 사용)
verify_host = 1
;verify_cert 1: 인증서 검증; 0: 인증서 검증하지 않음
verify_cert = 0
;verify_host 1: 인증서 내의 domain name 확인; 0: 확인하지 않음 (test 시만 사용)
verify_host = 0
으로 변경후 테스트 결과를 회신부탁드립니다.
네 한번 해보겠습니다
그리고 터미널에서 아래 옵션을 붙여서 curl 도 한번 해보시고 결과 회신부탁드립니다.
curl --tlsv1.2 -I -v -L https://xpay-gateway.tosspayments.com
* About to connect() to xpay-gateway.tosspayments.com port 443 (#0)
* Trying 210.98.141.16...
* Connected to xpay-gateway.tosspayments.com (210.98.141.16) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* subject: CN=xpay-gateway.tosspayments.com
* start date: May 10 00:00:00 2024 GMT
* expire date: Jun 10 23:59:59 2025 GMT
* common name: xpay-gateway.tosspayments.com
* issuer: CN=Sectigo RSA Domain Validation Secure Server CA,O=Sectigo Limited,L=Salford,ST=Greater Manchester,C=GB
HEAD / HTTP/1.1 User-Agent: curl/7.29.0 Host: xpay-gateway.tosspayments.com Accept: /> < HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden < server: openresty server: openresty < date: Fri, 20 Dec 2024 01:44:43 GMT date: Fri, 20 Dec 2024 01:44:43 GMT < content-type: text/html content-type: text/html < content-length: 150 content-length: 150 < x-envoy-upstream-service-time: 1 x-envoy-upstream-service-time: 1 < x-tosspayments-trace-id: 79b4f3be-66a6-455d-93d9-49eaa732e686 x-tosspayments-trace-id: 79b4f3be-66a6-455d-93d9-49eaa732e686 < * Connection #0 to host xpay-gateway.tosspayments.com left intact curl 결과입니다
네 저렇게 나오면 curl 은 정상입니다. TLS 1.2 가 지원되는 서버셋팅상태입니다
위에 말씀드린 mall.conf 만 수정해보시고 테스트 결과 회신부탁드려요
넵 알겠습니다
도메인 변경전에는, 기존에 전부 0 으로 설정했다가 금번에 함께 1로 수정하신걸까요?
mall.conf는 이전세팅 그대로 사용하고있어서 계속 1이었습니다
지금 쓰시는 모듈이 JAVA이신거죠?
네네
JAVA면 curl 버전은 관계가 없습니다. 몇가지 더 확인을 해봐야 할것 같구요
일단 위 0 부분 수정후 테스트 해보시고 , 안되면 다른 부분 확인요청 드리겠습니다.
넵
mall.conf 에 설정된 상점MID가 어떻게 되시나요?
이거입니다
이건 바로 지워주세요 mertkey입니다
이거 옆에 있는 값이 MID입니다
mid = abcdefsfdsdafsdf
tmid = dsgfsgsgssd
이런식으로 mall.conf 에 기재되어 있을겁니다.
음... mid는 없습니다
상점 아이디하고 lgdacomxpay라는 값이 있긴합니다
네..그 상점ID를
부탁드립니다.
아아
kaitcp입니다
네 감사합니다
설정 변경 후 테스트가 지금 바로는 조금 어려워서 조금있다가 해보고 다시 말씀드려도 될까요?
기존결제때의 xpayclient 라이브러리 버전이 XPayClient (1.1.5.9/Java)
라서, 일단 라이브러리 업데이트는 안해도 될것 같습니다.
mall.conf에 아마 기존에 이런 내용이 있었을겁니다.
;keystore_cacerts_dir=C:\Program Files\Java\jre1.8.0_202\lib\security\cacerts
네네
저건 상점쪽 root 인증서인데요..여기에서 xpay-gateway.tosspayments.com 을 인식하지 못해서 발생하는 에러입니다..이건 위 값을 0으로 바꾸면 체크하지 않습니다.
아아.. 넵
근데 값을 0으로 바꾸고 해서 됐다고 해도 보안상으로 문제가 되진않을까요?
하나만 더 여쭤볼게요. JDK버전하고 웹서버 (WAS) 종류,버전은 어떻게 되나요?
가맹점 서버의 hosts 파일이나 DNS 사고 (ex: xpay-gateway.tosspayments.com 을 악의적인 다른 곳으로 돌리는 침해사고) 만 발생하지 않는다면, 보안상 크게 문제는 없습니다...1이 권장이긴 합니다
문의주신 에러가 TLS1.2 미지원 문제인지, 인증서 체크문제인지 확정하기 위해서, 우선 설정변경후 테스트를 요청드렸습니다
일단 테스트가 완료되면 회신부탁드립니다.
버전은 이렇게 됩니다.
JAVA "1.8.0_181"
Apache Tomcat/8.5.59
네 1.8 이면 TLS 1.2 기본지원입니다
아 넵
0으로 설정 변경하니 정상적으로 완료되었습니다
도와주셔서 감사합니다!