스코인포
스코인포3mo ago

Cipher Suite 변경관련

안녕하세요 https://discord.com/channels/864296203746803753/1377194639827669082 해등 글에서 문의 드렸었는데요 제가 java -version으로만 확인하다보니까 실질적으로 사용하고 있는 버전이 올바르게 뜨지 않았던거더라구요 프로세스 확인해보니 jdk-7u80버전으로 이미 예전부터 구동이 되고 있었어요 근데도 Cipher Suite 변경관련으로 해당사이트에 메일이 왜 오는지 모르겠어요 확인좀 해주시겠어요? 대상 상점아이디(MID): iksan7fFci 확인된 Legacy Cipher Suite: ECDHE-RSA-AES128-SHA 입니다
119 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee3mo ago
실제 웹서버에서 해당 java 버전을 사용하는지 확인부탁드립니다. 웹서버에서는 다른 버전을 쓰시는경우도 있어서요.
박의원
박의원3mo ago
iksan7fFci 으로 최근 발생된 거래가 없는데, 혹시 결제테스트를 한번 진행해보실수 있을까요?
스코인포
스코인포OP3mo ago
WAS 말고 WEB서버를 확인해달라는 말씀이신걸까요? 웹서버에서는 자바 설치가 안되어있는데요..
박의원
박의원3mo ago
api.tosspayments.com 과 백엔드 통신을 어디에서 하는지에 따라 웹서버일수도 있고 WAS일수도 있습니다. 그럼 WAS 쪽이시겠네요
스코인포
스코인포OP3mo ago
No description
스코인포
스코인포OP3mo ago
와스서버 프로세스 조회한겁니다 보시면 8u 버전으로 구동되고 있습니다..
박의원
박의원3mo ago
결제요청 이력이 있으면, 서버 IP와 cipher suite 확인을 저희쪽에서 할수 있습니다. 테스트로 결제를 한번 내주시고 회신주시면 다시 확인해보겠습니다 (결제 실패가 나도 됩니다) 익산시청이 상점ID가 지금 두개인데요, 대부분 go_iksanmall1 에서 결제가 나고 있고, iksan7fFci 는 한달간 발생한 적이 없습니다. 메일을 받으신것이 저희쪽 오탐으로 잘못 발송했을 가능성도 있을것 같습니다.
스코인포
스코인포OP3mo ago
혹시 iksan7fFci 이걸로 방금 결제실패건으로 발생한게 있을까요?
박의원
박의원3mo ago
네 확인해보겠습니다
스코인포
스코인포OP3mo ago
지금 다시 결제 했습니다 확인부탁드려요
박의원
박의원3mo ago
사용자가 결제를 취소하였습니다 이것만 있는데, 이건 브라우져->결제창 서버간 통신이라 정확한 확인이 안됩니다. 결제창 종료후 최종 승인요청까지 해봐야 합니다. 14:52분 이후 데이터로 다시 확인해보겠습니다
스코인포
스코인포OP3mo ago
네 다시 결제완료까지 테스트 해서 그걸로 확인해주시면 될 것 같습니다
박의원
박의원3mo ago
tls-version: TLSv1.2 user-agent: Java/1.7.0_80 client-ip: 123...163 tls-version: TLSv1.2 tls-cipher-suite: ECDHE-RSA-AES128-SHA 이렇게 넘어왔습니다.
스코인포
스코인포OP3mo ago
왜그러는걸까요................. 서버에서 자바 설치된곳이 was서버 하나뿐인데 거기서 업그레이드가 이미되었는데 저렇게 응답이오면 뭘 더 봐야하는걸까요... 80이면 맞지 않아요 그넫?? 근데? 7u80 버전 맞는데요..!
Minsu Kim
Minsu Kim3mo ago
@박의원 @스코인포 혹시 Bouncycastle로 설정을 해보실 수 있을까요? 7u80은 일부 cipher가 지원이 안되는 것 같습니다. 7u80에서는, ECDHE-RSA-AES128-SHA ECDHE-RSA-AES256-SHA ECDHE-ECDSA-AES256-SHA 위 Cipher가 지원되며 이것은 토스페이먼츠에서 지원 중단한 Cipher에 포함이 됩니다. https://discord.com/channels/864296203746803753/1374644670675554374/1374651661682872360 이 부분 참고해서 BouncyCastle을 사용해 보셔요
박의원
박의원3mo ago
$JAVA_HOME/jre/lib/security/java.security 쪽도 한번 체크해보시기 바랍니다. jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024 이런식으로 만일 있다면, 여기에 있는 알고리즘이 비활성화됩니다.. 사용하려는 알고리즘이 여기에 포함되어 있으면 제거해야 합니다 저희가 허용하는 알고리즘은 아래와 같습니다. 'TLS_AES_128_GCM_SHA256', 'TLS_AES_256_GCM_SHA384', 'TLS_CHACHA20_POLY1305_SHA256', 'ECDHE-ECDSA-AES128-GCM-SHA256', 'ECDHE-RSA-AES128-GCM-SHA256', 'ECDHE-ECDSA-AES128-SHA256', 'ECDHE-RSA-AES128-SHA256', 'ECDHE-ECDSA-AES256-GCM-SHA384', 'ECDHE-RSA-AES256-GCM-SHA384', 'ECDHE-ECDSA-AES256-SHA384', 'ECDHE-RSA-AES256-SHA384'
Minsu Kim
Minsu Kim3mo ago
java.security쪽 세팅을 먼저 보시는게 좋겠네요 이때 crypto.policy값이 있다면 unlimited로 바꿔주셔야 할겁니다. (8u151부터는 필수 설정)
스코인포
스코인포OP3mo ago
다시한번 여쭤볼게요 일단 자바버전은 요구하신 7u321 이상은 맞는데 7u80은 일부 cipher가 지원이 안되니 저 설정값들을 한번 확인해보라는 말씀 맞으실까요?
Minsu Kim
Minsu Kim3mo ago
Stackoverflow에 7u80 관련 오류 내용 글이 있었으나, 7u321로 올리라는 글이 있어서, 안내를 드렸습니다. 한번 설정값을 먼저 확인해보시고, 정 안되시면 써드파티 라이브러리를 사용해보시기 바랍니다.
스코인포
스코인포OP3mo ago
서버 접근이 바로 안되어서 아직 확인은 못했는데요. 일단 java.security쪽 세팅을 확인해서 crypto.policy값이 있다면 unlimited로 바꿔주면 되고, 그런값 이없으면 써드파티 라이브러리를 사용하라는 말씀이신건가요? 써드파티 라이브러리 가이드는 따로 없을까요? 지금 금요일까지 해결못하면 결제 사용 안되는건가요? 너무 복잡하네요... 자바 버전만 맞으면 될줄 알았는데요. 설정파일 확인해보니 crypto.policy 자체가 조회가 되지 않습니다
박의원
박의원3mo ago
1. 공지는 이번주 금요일까지였습니다만, 생각보다 가맹점쪽 대응이 더딘 부분이 있어 서비스 중지는 잠정 연기예정입니다. 페이드아웃 데드라인이 픽스되면 재공지 예정입니다. 일단 금주는 정상적으로 서비스 가능합니다. 2. 써드파티 라이브러리 사용은 일단 하지 마시기 바랍니다. 저희가 사용안정성을 보장하지 못하기 때문입니다. 3. 타 가맹점에서 이미 7u80 으로 정상연동중인곳도 많습니다. 우선은 java.security쪽을 먼저 변경해보시고 (WAS 재기동 필수), 다른 이슈가 있을시 즉시 원복을 하시는 것이 좋겠습니다. 4. java.security 의 설정을 jdk.tls.client.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 jdk.tls.server.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 이런식으로 설정하거나 jvm 옵션으로 -Djdk.tls.client.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 와 같이 적용해보는것도 체크해보시기 바랍니다. 현재 시스템에서 지원되는 cipher suite 확인은 아래 구문을 실행해보시면 될듯 합니다. SSLContext context = SSLContext.getInstance("TLSv1.2"); context.init(null, null, null); SSLSocketFactory factory = context.getSocketFactory(); String[] supported = factory.getSupportedCipherSuites(); System.out.println(Arrays.toString(supported));
스코인포
스코인포OP3mo ago
java.security 파일건드는것보다는 jvm 옵션으로 -Djdk.tls.client.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 하는게 가장 안전할거같아요 이방법으로 설정후 재기동한다음 결제테스트 해보고 다시 문의드리면 될까요?
Minsu Kim
Minsu Kim3mo ago
예예
스코인포
스코인포OP3mo ago
저희 엔지니어가 휴가여서 다음주 월요일쯤 진행할 수 있을거같아요. 서비스 지장 없을까요?
박의원
박의원3mo ago
네 다음주에 서비스 중단계획은 없습니다.
스코인포
스코인포OP3mo ago
감사합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
스코인포
스코인포OP3mo ago
이 방법으로 패치하고 결제 방금 시도해보았는데요 "에러코드 UNSUPPORTED_TLS_VERSION 메시지 TLS 버전 1.2 이상을 사용해주세요. 1.2 미만의 버전은 지원하지 않습니다." 라면서 갑자기 결제가 되지 않네요 tls-version: TLSv1.2 user-agent: Java/1.7.0_80 client-ip: 123...163 tls-version: TLSv1.2 tls-cipher-suite: ECDHE-RSA-AES128-SHA 예전에 이렇게 호출되었따고 하셨는데.. jvm옵션 넣었다고 갑자기 왜 버전오류가 뜨는걸까요 ?..
Minsu Kim
Minsu Kim3mo ago
MID는 iksan7fFci 맞으시죠? paymentKey 확인가능하실까요?
스코인포
스코인포OP3mo ago
iksan7fFci 는 맞습니다 paymentKey는 "live_ck_5mBZ1gQ4YVXg2Qwe4DG3l2KPoqNb" 이게 혹시 아닐까요?
Minsu Kim
Minsu Kim3mo ago
그건 clientKey에요. paymentKey는, successUrl에서 받아보실 수 있고, 결제 승인시 동봉하실거비다.
스코인포
스코인포OP3mo ago
paymentKey 가 결제 될때마다 생성되는 값인걸까요? 고정값이아니라?
Minsu Kim
Minsu Kim3mo ago
네 맞아요
스코인포
스코인포OP3mo ago
그럼 관리자페이지에서 확인할수있는걸까요? 토스관리자페이지요
Minsu Kim
Minsu Kim3mo ago
음.. 아니면 조금 더 기다려보시면 냥과장님이 MID로 확인이 되실수도 있어요 paymentKey가 있으면 로그를 나중에 냥과장님이 보시는데 더 빠르거든요. paymentKey가 관리자에 나오는지는 저도 기억이 잘 안나서 확인해봐야 하는데
Minsu Kim
Minsu Kim3mo ago
No description
Minsu Kim
Minsu Kim3mo ago
이렇게 successUrl에 토스에서 내려드립니다
스코인포
스코인포OP3mo ago
그럼 로그로 확인해봐야 알수있을거 같기도 하고요..
Minsu Kim
Minsu Kim3mo ago
요게 어딘가에 관리를 하셔야 결제취소 같은데 되셨을텐데 관리를 안하고 계셨던걸까요?
스코인포
스코인포OP3mo ago
개발을 제가 한게아니라 넘겨받아서 유지보수하고있는중이라 찾기가 힘드네요... 꼭 알아야 확인이 가능한걸까요?
Minsu Kim
Minsu Kim3mo ago
그건 아니에요 보통 관리를 하시니까, 그 값이 있다면 알려주면 더 확인이 쉽다는 의미였고 MID가 있으니까 확인을 할 수는 있습니다. 다만 이번 건이랑 별개로 paymentKey가 어디에 저장이 되는지 한번 확인해보는것도 좋을 것 같네요. 결제취소 같은거 하려면 필요할거라서
스코인포
스코인포OP3mo ago
네 알겠습니다! 한번 확인해보겠습니다. 이번 결제 실패건 확인되시면 이쪽으로 답장 부탁드립니다
Minsu Kim
Minsu Kim3mo ago
네 지금 조금 바쁘셔서 확인이 늦어지는 것 같은데 조금만 시간양해 부탁드려요 cc @냥과장
스코인포
스코인포OP3mo ago
네 괜찮습니다!
Kimoon Lee
Kimoon Lee3mo ago
iksan7fFci 에서 UNSUPPORTED_TLS_VERSION 이 에러를 받으셨다는 건가요? 이요청은 TLS 1.0 으로 요청이 온것으로 확인됩니다. 이전에 요청 들어온건 TLS 1.2 로 들어왔었는데요. 이번요청은 서버를 변경하신건가요? 그게 아니라면 갑자기 왜 TLS 버전이 1.0 으로 낮아진건지 확인부탁드립니다.
박의원
박의원3mo ago
혹시 설정변경하면서 아래 내용이 지워진것은 아닌지도 확인해보시기 바랍니다. jvm -Djdk.tls.client.protocols=TLSv1.2 -Djdk.tls.server.protocols=TLSv1.2 java.security jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1
스코인포
스코인포OP3mo ago
서버변경한건 없고 jvm옵션만 바꾸고 재기동 했는데 왜 낮아진 상태로 전송이된건지 잘 모르겠습니다 jvm -Djdk.tls.client.protocols=TLSv1.2 -Djdk.tls.server.protocols=TLSv1.2 이부분 한번 확인해볼게요 확인해보았는데요 애초에 tls관련된 설정은 아예 없었고 'TLS_AES_128_GCM_SHA256', 'TLS_AES_256_GCM_SHA384', 'TLS_CHACHA20_POLY1305_SHA256', 'ECDHE-ECDSA-AES128-GCM-SHA256', 'ECDHE-RSA-AES128-GCM-SHA256', 'ECDHE-ECDSA-AES128-SHA256', 'ECDHE-RSA-AES128-SHA256', 'ECDHE-ECDSA-AES256-GCM-SHA384', 'ECDHE-RSA-AES256-GCM-SHA384', 'ECDHE-ECDSA-AES256-SHA384', 'ECDHE-RSA-AES256-SHA384' 이 설정값만 추가했어요 근데 갑자기 tls버전이 갑자기 낮게 인식이되는건 무슨 경우일까요? 아 -Djdk.tls.client.cipherSuites="TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_SHA384,TLS_ECDHE_RSA_WITH_AES_256_SHA384" 이렇게 추가했어요 이렇게 추가했더니 갑자기 tls버전에 낮게 인식이 되고있어요. -Djdk.tls.client.protocols=TLSv1.2 이부분도 추가로 넣어보고 재기동 해볼까요?
박의원
박의원3mo ago
잠시만요..지금 cipher suite 넣으신것중에 지금 jdk 버전에 지원안되는게 들어간것 같아요. 확인후 회신드리겠습니다 -Djdk.tls.client.cipherSuites="ECDHE-RSA-AES128-GCM-SHA256" -Djdk.tls.client.protocols=TLSv1.2 -Djdk.tls.server.protocols=TLSv1.2 이렇게 넣고 재기동해보시겠어요?
스코인포
스코인포OP3mo ago
방금 이대로 설정하고 재기동하였는데요 에러코드 UNSUPPORTED_TLS_VERSION 메시지 TLS 버전 1.2 이상을 사용해주세요. 1.2 미만의 버전은 지원하지 않습니다. 같은 증상입니다.
박의원
박의원3mo ago
저 원인이 아닌것 같은데..지금 추가한 -Djdk.tls.client.cipherSuites="ECDHE-RSA-AES128-GCM-SHA256" -Djdk.tls.client.protocols=TLSv1.2 -Djdk.tls.server.protocols=TLSv1.2 이거 세개를 모두 주석처리해서, 재기동후 확인해보실수 있을까요? 다른쪽 설정 변경한것은 전혀 없으시죠?
스코인포
스코인포OP2mo ago
정말 이상합니다. 원복하고나서 재기동했는데도 계속 에러코드 UNSUPPORTED_TLS_VERSION 메시지 TLS 버전 1.2 이상을 사용해주세요. 1.2 미만의 버전은 지원하지 않습니다. 이 에러코드가 뜨네요.. 이거 해결할 수 있는걸까요? 설정바꾼건 제우스쪽 JEUSdomain.xml에
스코인포
스코인포OP2mo ago
No description
스코인포
스코인포OP2mo ago
이부분만 추가했다가
스코인포
스코인포OP2mo ago
이렇게 그냥 아예 설정값 없애는걸로 원복했는데도 계속 같은 증상입니다..
No description
스코인포
스코인포OP2mo ago
No description
스코인포
스코인포OP2mo ago
No description
스코인포
스코인포OP2mo ago
프로세스 올라간거보면 tls설정값은 없어져 있습니다 그런데도 갑자기....... 이상해졌습니다.
박의원
박의원2mo ago
java -version 으로 확인되는 정확한 java version 정보 회신주실수 있을까요? 일전에 user-agent: Java/1.7.0_80 로 확인됬는데, 현재도 이 정보가 맞는지 확인부탁드립니다 이게 맞다는 전제하에, 아래 설정 다시 확인부탁드립니다. 1. JVM -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 이후 WAS재기동. 2. 결제요청프로세스에 아래 항목 적용 System.setProperty("https.protocols", "TLSv1.2"); System.setProperty("jdk.tls.client.protocols", "TLSv1.2");
스코인포
스코인포OP2mo ago
네 오늘 진행 해볼게요 java -version 으로 하면 'java version "1.7.0_261" 이렇게 뜨기하는데요. path설정이안되서그런같고요 프로세스로 실제구동한거 보면 /jdk1.7.0_80/ 입니다 여기서 일단 1번만 진행해봐도될까요? 2번은 소스분석하는게 오래걸릴 것 같아서요
박의원
박의원2mo ago
네 일단 1번만 진행해보시기 바랍니다. TLS1.2 를 먼저 되게 하는게 우선일듯 싶습니다. 참고로 같은 JDK1.7 이라도, jdk1.7.0_80 이하버전은 반드시 WAS 및 JVM에 설정을 해야 TLS 1.2가 작동됩니다 (기본설정이 TLS1.2가 꺼져있는 상태) 기존에도 System.setProperty 는 설정이 안된 상태로 TLS1.2 로 작동됬을테니, 일단 jvm쪽 설정만 변경후 재확인부탁드립니다. TLS 1.2 통신이 다시 재개 되면, 이후에 cipher suite 설정확인을 다시 해야 할것 같습니다.
스코인포
스코인포OP2mo ago
엇 이제 결제 완료 되었습니다. JVM -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 이작업만 했어요 지금 결제테스트까지 완료되었는데 여전히 교체대상인지 한번 확인해주시고 만약 아직도 교체대상이라면 cipher suite 설정확인 가이드를 다시 한번 부탁드리겠습니다
박의원
박의원2mo ago
네 수고하셨습니다. 주문번호나 TID 한번 회신부탁드립니다. 일단 iksan7fFci 로 가장 최근 거래로 찾아보겠습니다 LGD_OID=20250624135918-1355077 로 확인해보겠습니다
스코인포
스코인포OP2mo ago
iksan7fFci 가장 최근 찾으시는게 빠를것같아요. 저는 유지보수 담당자라 시군구 주사님이 직접 확인해주셔야하는데 저번에도 말씀드리니 찾기 어려워 하시더라구요.. 왜냐면 결제한건이 오늘거 제가테스트한거 하나밖에 없을거에요
박의원
박의원2mo ago
Java/1.7.0_80 TLS1.2 ECDHE-RSA-AES128 로 올라왔습니다. 원상복구는 된것 같구요...아래 부분만 jvm에 한줄 추가해서 다시 테스트 해보실수 있을까요? 잠시만요..지금 보니까..
스코인포
스코인포OP2mo ago
박의원
박의원2mo ago
-Djdk.tls.client.protocols=TLSv1.2 -Djdk.tls.server.protocols=TLSv1.2 이건 안먹는것 같고 -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 이게 먹는 상태이네요..
스코인포
스코인포OP2mo ago
네...
박의원
박의원2mo ago
예 잠시만 기다려 주시겠어요? 지금 일단 TLS1.2 복구는 된것 확인됬으니 지금 설정에서 cipher suite 업데이트 적용만 한번 체크해보겠습니다
스코인포
스코인포OP2mo ago
넵!
박의원
박의원2mo ago
일단 이거 한번 실행하셔서..현재 jvm 에서 어떤 suite 를 지원하는지 확인해보실수 있을까요? java -Djavax.net.debug=ssl -jar yourApp.jar 아무거나 넣으면 안될것 같고, 현재 지원되는 셋트에서 골라서 적용해야 할것 같습니다. yourApp.jar 는 예시이고, 지금 서버에 설치된 jar 파일중 하나를 지정해서 테스트 해봐주세요
스코인포
스코인포OP2mo ago
이해를 잘 못했어요 죄송합니다 서버에서 java -Djavax.net.debug=ssl -jar yourApp.jar(예시) 이렇게 명령어를 쳐보라는 걸까요? yourApp.jar 는 lib 디렉토리에 있는 아무 jar파일 넣으면 되는거구요?
박의원
박의원2mo ago
혹시 테스트가 여의치 않으시거나, 에러가 나면, java.security 에 아래 구문이 어떻게 되어 있는지 알수 있을까요? #jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 jdk.tls.disabledAlgorithms=SSLv3 jdk 1.7u80을 설치하면 기본적으로 저렇게 설정이 되어 있을겁니다 java -Djavax.net.debug=ssl -jar yourApp.jar 이건 그냥 무시해주세요
스코인포
스코인포OP2mo ago
서버가 클라우드여서.. 접속을 원격요청해서 해야하는 부분이라 오늘은 원격신청이 끝나 내일 확인해봐야할것같습니다.. 내일 확인하고 다시 연락드리곘습니다! 안녕하세요 현재 JVM이 지원하는 Cipher Suite 전체 목록을 추출하는 명령어가 있어 실행시켜보았습니다 [root@iss-rephmgews01 ~]# jrunscript -e "var arr = java.util.Arrays.asList(javax.net.ssl.SSLContext.getDefault().getSocketFactory().getSupportedCipherSuites()); for (var i = 0; i < arr.size(); i++) print(arr.get(i) + '\n');" TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDH_RSA_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDH_RSA_WITH_AES_128_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA TLS_DHE_DSS_WITH_AES_128_CBC_SHA TLS_EMPTY_RENEGOTIATION_INFO_SCSV 이걸로 확인 가능하신가요? 그리고 jdk.tls.disabledAlgorithms 속성은 따로 조회가 되지않습니다. tls관련속성은 위에서 가이드 주신 -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 이 두가지만 조회가 되고있습니다
박의원
박의원2mo ago
네 보내주신 리스트로 저희쪽 인프라와 확인해보겠습니다
스코인포
스코인포OP2mo ago
박의원
박의원2mo ago
아래 셋트 세개면 충분할것 같습니다. TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 나머지는 보안이 취약하여 권장드리지 않습니다. 저희도 좀 조사를 해봤는데, jdk 1.7 에서는 jvm에 직접 cipher suite를 적용하는것이 제한되어 있는것 같습니다. 일단 아래와 같이 적용해보시고 테스트 결과 회신부탁드립니다. -Dhttps.cipherSuites="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"
스코인포
스코인포OP2mo ago
-Dhttps.cipherSuites="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" 이거를 -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 이 설정값 넣은 파일에 같이 넣으라는 말씀 맞으실까요? -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 -Dhttps.cipherSuites="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" 이렇게요
박의원
박의원2mo ago
네 맞습니다
스코인포
스코인포OP2mo ago
네 그리고 기동한 후 다시 결제테스트해보고, 어떻게 넘어왔는지 확인부탁드리면 될까요?
박의원
박의원2mo ago
넵..아 이렇게 적용해주세요 -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 -Dhttps.cipherSuites="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" -Djdk.tls.disabledAlgorithms="SSLv3, RC4, MD5, DH keySize < 2048" 이렇게 적용/재기동후 결제테스트 해보시고 회신주시면, 확인해드리겠습니다
스코인포
스코인포OP2mo ago
https.cipherSuites는 JVM에서 인식하지 않는 속성이라고 나오긴하는데.. (검색해보니) 일단 해보라는 말씀이신거죠?!
박의원
박의원2mo ago
네 u80이면 지원이 되거든요 만일 재기동시 에러가 나면, 말씀하신대로 disabledAlgorithms 는 지우고, 번거로우시겠지만 -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 -Dhttps.cipherSuites="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" 이거 세개만 적용하고 다시 테스트 부탁드립니다.
스코인포
스코인포OP2mo ago
네 알겠습니다 일단, -Dhttps.cipherSuites="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" -Djdk.tls.disabledAlgorithms="SSLv3, RC4, MD5, DH keySize < 2048" 이 두가지를 넣고 재기동하면 재기동자체에서 에러가나서 다시 -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 -Dhttps.cipherSuites="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" 이렇게 하고 재기동은 했는데 결제에서 에러가 났어요. 그냥 오류페이지 뜨면서 결제실패되더라고요 그래서 다시 원복하였습니다.. -Djdk.tls.disabledAlgorithms="SSLv3, RC4, MD5, DH keySize < 2048" 이속성에서 재기동오류가 났기때문에 불가능할것같습니다..
박의원
박의원2mo ago
예 jvm에서의 적용은 잘 안되는것으로 정리가 되네요. 혹시 웹서버는 어떤것을 쓰시나요? 일단 jvm은 앞으로도 아래 두개속성만 적용해주세요 -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2
스코인포
스코인포OP2mo ago
웹서버 웹투비 이빈다 넵 현재 -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 이두가지로만 적용시켜서 재기동 완료후 결제까지 잘되는거 재확인 하였습니다
박의원
박의원2mo ago
네 일단 jvm 적용은 불가하기 때문에 웹투비에 설정하는 방안을 한번 찾아보겠습니다
스코인포
스코인포OP2mo ago
넵 알겠습니다
박의원
박의원2mo ago
@스코인포 님 webToBE 설정에 아래 부분 확인해보시기 바랍니다. (위에 Ayaan 님이 공유해주신 문서의 1. WEBTOB SSL Protocol 및 Cipher 설정 - 권장 알고리즘 항목입니다) ($HOME_BASE)/config/http.m 파일을 열어 프로토콜을 아래항목 추가 Protocols = "TLSv1.2", RequiredCiphers="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"
서울신학대학교_전산과
PG사 정산내역을 받는 통신에서 최근 TLSv1 관련 수정사항이 있나요?
박의원
박의원2mo ago
정산내역쪽 받는 부분 (https://pgweb.tosspayments.com/ 통신을 말씀하시는 것이라면, 4월경 TLS 1.2 강제 이후, 변경된 것은 없습니다 어떤 에러가 발생하는지 에러내용을 회신부탁드립니다.
Minsu Kim
Minsu Kim2mo ago
@서울신학대학교_전산과 안녕하세요. 혹시 위에 @스코인포 님과 같은 업체이실까요? 다른 업체이실 경우, 문의 이력 관리를 위하여 새로운 포스트를 생성해서 문의 내용을 작성 부탁드립니다.
스코인포
스코인포OP2mo ago
안녕하세요. 웹투비에서 설정변경 완료후 결제까지 테스트 완료되었습니다. 최근 결제 이력은 제가 테스트한거밖에 없어서 바로 확인하실수 있을거에요 웹투비설정은 아래와같이 적용하였습니다 Protocols = "TLSv1.2", RequiredCiphers = "ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256", 대상 상점아이디(MID): iksan7fFci 입니다
박의원
박의원2mo ago
혹시 테스트한 시간이 10:18 경이고, 서버 IP가 123.x.x.163 이 맞으실까요? 일단 위 서버 에서의 결제요청 (주문번호 : 20250702101755-1357433)은 ECDHE-RSA-AES128-SHA 로 넘어왔습니다. webtoB의 config/http.m 설정중 아래 부분을 추가해보실수 있으실까요? LISTENER HTTPS { Ciphers = HIGH:!aNULL:!MD5:!RC4:!3DES SSLProtocol = TLSv1.2 }
스코인포
스코인포OP2mo ago
적용이 잘 안되었다는 말씀이신거죠?
박의원
박의원2mo ago
결제요청을 한 곳의 서버 IP가 저 위의 내용이 맞다면.적용이 안된것이 맞습니다. 그래서 추가로 위 설정 확인해보시도록 말씀드렸습니다. 만일 저 서버 IP와 주문번호가 아니라면, 주문정보나 서버 IP정보를 회신주시면 다시 확인해보겠습니다.
스코인포
스코인포OP2mo ago
저 아이피는 사설통신망 아이피 인듯 싶은데요.. 근데 시간대는 맞습니다 결제할수있는 경로가 지금 전혀없어서 확인해주신 저 결제건이 테스트용 맞는 것 같습니다
박의원
박의원2mo ago
네 위 부분 추가로 한번 체크 부탁드립니다. 이건 다른 얘기인데 jdk1.8 이상으로의 업데이트는 현실적으로 어려우신 것이지요?
스코인포
스코인포OP2mo ago
네.... 제우스라서 jdk버전 업그레이드가 많이 까다롭습니다.ㅠㅠ 말씀하신 LISTENER HTTPS { Ciphers = HIGH:!aNULL:!MD5:!RC4:!3DES SSLProtocol = TLSv1.2 } 이부분 추가해보고 다시 전달드리도록 하겠습니다 저도 다른말인데. 혹시 이 업그레이드를 해야하는 데드라인이 최대 언제까지일까요? 곧 홈페이지가 개편예정이어요 이어서요 방금 14:35~36분경 결제 테스트 한번 더 했는데 잘 넘어왔는지 확인부탁드려도 될까요?
박의원
박의원2mo ago
네 확인후 회신드리겠습니다 동일합니다. 저 혹시 webToB 버전은 어떻게 되는지 알수 있을까요? 일단 데드라인은 7/10 까지입니다.
스코인포
스코인포OP2mo ago
14:56 결제 테스트 다시한번 진행했습니다 확인부탁드립니다 아까는 말씀하신 설정 적용 안한상태에서 해본거라 이번걸로 확인 한번더 부탁드릴게요. 웹투비 버전은 webtob 4.1.9.1 입니다 애초에 jdk버전이 jdk1.7.0_80라서 지금 문제가 해결되고 있지 않은 것 아닐까요..?
박의원
박의원2mo ago
1.7.0_80을 쓰는 타 가맹점중 대부분은 정상적으로 업데이트를 한 상태입니다
스코인포
스코인포OP2mo ago
일단... LISTENER HTTPS { Ciphers = HIGH:!aNULL:!MD5:!RC4:!3DES SSLProtocol = TLSv1.2 } 이거까지는 설정해서 재기동 했고 14:56에 결제테스트를 진행하였습니다 정상적으로 넘어왔는지 확인부탁드려요 한가지만 더 요청드릴게요. (만약 14:56 테스트건도 정상결제내역이 아닐경우) https://www.iksan.go.kr/index.iksan?contentsSid=6206 (텍스트가 너무길어 링크로 첨부합니다) 이 리스트중에 지원되는 거 말씀해주실수있을까요? 이렇게 찝어주셨던것처럼요
Minsu Kim
Minsu Kim2mo ago
확인 후. ㅏㅂ변드리겠스빈다 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 확인됩니다.
Minsu Kim
Minsu Kim2mo ago
사실 이것을 다 지원하는게 가장 베스트입니다
No description
스코인포
스코인포OP2mo ago
16:51 결제 완료했는데 잘 넘어갔는지 확인부탁드립니다
박의원
박의원2mo ago
잘넘어온것 같습니다 ECDHE-RSA-AES128-SHA256 TLS1.2 로 잘 넘어왔습니다
스코인포
스코인포OP2mo ago
엇 그럼 이제 해결이 된건가요?
박의원
박의원2mo ago
16:51:08 에 https://api.tosspayments.com/v1/confirm 으로 요청됬고, orderId : 20250702165046-1357601 입니다.
스코인포
스코인포OP2mo ago
네 맞습니다
박의원
박의원2mo ago
잠시만요
스코인포
스코인포OP2mo ago
박의원
박의원2mo ago
ECDHE-RSA-AES128-SHA256은 현재 기준으로 안전한 cipher suite이긴 합니다만, 이걸 저희쪽에서 추후 pass시킬지 확인해봐야 할것 같습니다. 확인후 회신드리겠습니다. 혹시 마지막 조치는 이걸 해보신걸까요? LISTENER HTTPS { Ciphers = HIGH:!aNULL:!MD5:!RC4:!3DES SSLProtocol = TLSv1.2 }
스코인포
스코인포OP2mo ago
넵 저것도 적용시켜둔 상태입니다
박의원
박의원2mo ago
넵 우선 이대로 유지시켜 주시고, 저희쪽 확인되면 다시 회신드리겠습니다
스코인포
스코인포OP2mo ago
아 그리고 저거랑 호출/응답시 화면에서 System.setProperty("https.cipherSuites", "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"); 이렇게 소스를 추가했습니다
박의원
박의원2mo ago
지금 적용하신 내용으로 충분할것 같습니다. 저희쪽에서 허용하는 cipher suite에 포함되어 있습니다. 그동안 수고많으셨습니다. 협조해주셔서 감사합니다
스코인포
스코인포OP2mo ago
정말 고생 많으셨습니다. 감사합니다!

Did you find this page helpful?