본문 바로가기
Koraveler 개발 일지

내 웹 사이트에 접속했더니 인증서를 선택하라고?

by haries 2025. 10. 1.

문제

백엔드 배포 후 발견한 오류를 마주한 이야기입니다.

 

어느 날 로컬 환경에서 백엔드를 열심히 개발하고 AWS EC2에 배포를 하게 되었습니다.

저는 이미 AWS에 프론트엔드/백엔드 배포환경은 갖춰놓은 상태이기에 EC2 콘솔에서 백엔드 git pull을 받고 build후 배포를 진행했습니다.

 

그렇게 해서 딱 접속을 했는데 아니 이게 무슨 일..? 

인증서를 선택하라는 메세지가 뜨네요..? 

 

처음 보는 메세지여서 당황스러웠습니다. 취소를 누르면 백엔드 통신은 이상이 없는데, 크롬을 껐다 켜서 처음 Koraveler에 접속할 때 해당 에러가 나타납니다. 오랜만에 배포한 거라서 의심가는 곳을 열심히 찾아보았습니다.

 

의심

첫 번째는 제가 Spring Security 설정을 잘못한게 있나? 였습니다. 저는 Spring Security가 기본 제공하는 인증 화면은 사용하지 않고 프론트엔드 환경에 구현(e.g. 로그인 화면 등)해서 대체하고 있는데 해당 설정이 잘못 되었나 의심을 했습니다.

하지만 설정 상의 문제는 없었습니다.

 

두 번째는 EC2 프론트 배포 환경인 nginx의 설정의 문제가 있나 하는 것이었습니다.

nginx에서 인증서 관련 설정이 켜져있는지 확인해보았지만 이상이 없었고, 애초에 저는 ALB, Route53, Certificate Manager로 HTTPS 인증을 설정해놓았기 때문에 nginx만의 문제는 아닐 것으로 생각되었습니다. 

 

에러를 자세히 보면 

저의 백엔드 주소(www.koraveler-backend.com)를 접근할 때 발생하는 문제 같았습니다.

 

그래서 세 번째로 확인한 곳이 백엔드 배포 환경이었습니다. 여기서 이틀을 헤맸는데 결과적으로는 여기가 문제가 맞았습니다.

 

결론

바로 백엔드 EC2에 연결된 로드밸런서 설정의 문제였습니다. 정확히는 로드밸런서의 HTTPS 연결을 위해 설정한 리스너의 설정 하나를 체크해서 그랬습니다. 바로 보안 리스너 설정 맨 아래에 있는 클라이언트 인증서 처리에 상호 인증이 체크되어있어서 그랬던 문제였습니다.

서비스 연결을 위해 클라이언트 측에서 인증서가 있어야 접근할 수 있는  설정인데 여기를 잘못 설정해 놓았던게 문제였습니다.

여기 접근은 리스너 규칙 편집에서 확인하실 수 있습니다. 

댓글