카카오 로그인이 안됩니다

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


앱ID: 959757
https://devtalk.kakao.com/t/topic/135473/2
이전에 작성한 질문글인데 충분한 대답을 얻지 못해서 다시 문의드립니다.
현재도 로컬호스트에서는 정상작동됩니다.
카카오 계정 입력하는 페이지도 잘 들어가지는 걸 보면 사이트 url도 정상적으로 등록되었습니다.
그런데 실서버에서는 계속해서 504 에러가 발생하고 있습니다.
로그가 넘어오지 않고 504에러가 발생하기 때문에 제안주신 로그를 찍어서 확인해보는 방법도 불가능합니다.

카카오 로그인을 적용하기 위해 설정해야 하는 부분은 사이트 url을 입력하는 부분만 있는 것으로 이해하고 있습니다.
그리고 로컬환경과 실서버 환경이 다른것은 사이트 url 밖에 없는데 그 부분은 잘 등록되어 있습니다.
https 환경에서는 뭐가 안되는걸까요?
무엇을 더 설정하거나 확인해야 할지 모르겠습니다.

정확히 504에러가 발생하는 부분의 코드입니다.

           UriComponents uriComponents =
                UriComponentsBuilder.fromUriString("https://kauth.kakao.com/oauth/token")
                        .queryParam("grant_type", "authorization_code")
                        .queryParam("client_id", kakaoClientId)
                        .queryParam("redirect_uri", CommonUtil.siteUrl + redirectUrl)
                        .queryParam("code", code).build();

        // HTTP 연결 설정
        URL url = new URL(uriComponents.toString());
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setRequestMethod("POST");

        System.out.println("들어옴");
        int responseCode = con.getResponseCode();
// 여기에서 responseCode를 받지 못하고 대기하다가 504 Gateway timeout 에러가 발생합니다.
// 로컬에서 돌릴때와 동일한 코드이며, 로컬호스트에서는 200으로 잘 넘어옵니다.
        System.out.println("들어옴 responseCode: " + responseCode);

안녕하세요.

코드 문제 보다는 서비스측 방화벽 문제로 보이는데요
실 서버는 어디서 운영하고 계실까요?

cafe24 가상서버를 사용중이며,
인바운드,아웃바운드 모두 TCP 80, 443 포트 열려있습니다.
추가로 설정해야할 내용이 있을까요?

테스트 해보려고 outbound에 TCP 1-65535포트를 전부 허용했는데도 안되고 있습니다…

안녕하세요.

해당 서버에서 kauth 로 접속 가능한지 확인 부탁드립니다.
ex) traceroute -T kauth.kakao.com

traceroute to kauth.kakao.com (203.133.166.32), 30 hops max, 60 byte packets
 1  gateway (192.168.1.254)  0.672 ms  0.609 ms  0.598 ms
 2  169.254.81.203 (169.254.81.203)  0.590 ms  0.583 ms  0.575 ms
 3  183.111.247.193 (183.111.247.193)  41.486 ms  41.656 ms  41.813 ms
 4  * * *
 5  10.1.23.9 (10.1.23.9)  11.120 ms 10.1.24.9 (10.1.24.9)  8.674 ms 10.1.23.9 (10.1.23.9)  11.183 ms
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

이렇게 뜨는 것을 보니 연결이 안되는것 같습니다.
그런데 인바운드, 아웃바운드 모두 TCP 80,443포트가 0.0.0.0/0 로 허용되어있는데 추가로 오픈해줘야 할 포트가 있는건가요?
아니면 혹시 제가 서버에서 도커를 이용해서 서비스를 띄우고 있는데 그와 관련된 문제일까요?
하지만 traceroute -T kauth.kakao.com 명령어는 호스트 서버에서 진행했는데 연결이 안되는 걸 보면 도커와는 별개로 무언가 설정을 해야하나 봅니다…
조언 부탁드립니다.

타 사이트로 요청했을때의 결과도 첨부합니다.

[centos@meme-server ~]$ sudo traceroute -T nid.naver.com
traceroute to nid.naver.com (125.209.226.33), 30 hops max, 60 byte packets
 1  gateway (192.168.1.254)  0.633 ms  0.608 ms  0.596 ms
 2  169.254.81.203 (169.254.81.203)  0.587 ms  0.564 ms  0.552 ms
 3  183.111.247.193 (183.111.247.193)  45.122 ms  45.488 ms  45.310 ms
 4  * * *
 5  10.1.24.9 (10.1.24.9)  9.655 ms 10.1.23.9 (10.1.23.9)  12.419 ms 10.1.24.9 (10.1.24.9)  9.935 ms
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  125.209.226.33 (125.209.226.33)  2.936 ms  3.310 ms  2.966 ms

curl 명령어로 연결 시 결과입니다.

[centos@meme-server ~]$  curl -v https://kauth.kakao.com
* About to connect() to kauth.kakao.com port 443 (#0)
*   Trying 27.0.237.15...
* Connected to kauth.kakao.com (27.0.237.15) 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_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
*       subject: CN=*.kakao.com,O=Kakao Corp.,L=Jeju-si,ST=Jeju-do,C=KR
*       start date: Aug 31 00:00:00 2023 GMT
*       expire date: Sep 29 23:59:59 2024 GMT
*       common name: *.kakao.com
*       issuer: CN=Thawte TLS RSA CA G1,OU=www.digicert.com,O=DigiCert Inc,C=US
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: kauth.kakao.com
> Accept: */*
>
< HTTP/1.1 302 Found
< Date: Thu, 14 Mar 2024 15:18:48 GMT
< Content-Length: 0
< Connection: keep-alive
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
< Pragma: no-cache
< Expires: 0
< X-XSS-Protection: 1; mode=block
< X-Content-Type-Options: nosniff
< Referrer-Policy: strict-origin-when-cross-origin
< X-Frame-Options: DENY
< Location: https://accounts.kakao.com/login?continue=https%3A%2F%2Fkauth.kakao.com%2Foauth%2Fauthorize%3Fthrough_account%3Dtrue
< Kakao: Talk
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET, POST, OPTIONS
< Access-Control-Allow-Headers: Authorization, KA, Origin, X-Requested-With, Content-Type, Accept
<
* Connection #0 to host kauth.kakao.com left intact

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


https://devtalk.kakao.com/t/topic/135712/8
여기에 문의를 남겼는데 답변을 안주셔서 새글로 다시 등록합니다!
댓글 확인 한번 해주시면 감사드리겠습니다 ㅎㅎ

안녕하세요.

답변이 늦어 죄송합니다.

첨부해 주신 traceroute 결과 30 * * * 를 보시면 서비스측 방화벽에서 더 이상 요청이 진행되지 않는 것으로 확인됩니다.

서비스측 방화벽 로그를 확인해 보시면 좋을것 같습니다.