프로그래밍

Springboot 웹서버 인증서 발급하여 HTTPS 443 포트로 백엔드 실행하기

손가든 2024. 11. 16. 18:06

HTTPS의 프론트 서버를 연동하려면 이 서버와 연결되어있는 백엔드 서버도 HTTPS 443 포트의 ssl인증을 받은 웹서버여야 한다.

 

그래서 항상 개발을 해서 ssl 인증을 받을때면 이 복잡한 방법을 매번 찾아서 수행하는데,

 

귀찮아서 기록해두고 새 프로젝트 할때마다 따라하며 수행하려 한다.

 

 


 

먼저 SSL은 해당 웹 서버의 IP가 신뢰할 수 있는 서버인지 검증하는 절차를 수행하기 때문에,

발급받는 key도 당연히 배포하는 서버에서 받아야 한다.

 

따라서 만약에 EC2 인스턴스에서 SSL 키를 발급받으려고 한다면 인스턴스 안에서 발급받은 뒤에 해당 키를 Springboot 프로젝트가 있는 컴퓨터로 옮기던지 해야 함.

 

 

나는 EC2 우분투 OS 환경에서 배포하고 있기 때문에 우분투 환경의 터미널에서 certbot를 설치했다.

 

sudo apt update
sudo apt install snapd -y
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot

#그러고
sudo certbot certonly -d <도메인>

 

 

근데 안된다..

 

Requesting a certificate for www.letsnotessl.store

Certbot failed to authenticate some domains (authenticator: standalone). 
The Certificate Authority reported these problems:
  Domain: <도메인명 넣음>
  Type:   unauthorized
  Detail: 43.201.108.62: Invalid response from http://www.도메인.com/.well-known/
  acme-challenge/EYEMqKKOH7pxjqNpYr7sVRLiABYFPMhzJDk9Gc-iFPk: 404

Hint: The Certificate Authority failed to download the challenge files 
from the temporary standalone webserver started by Certbot on port 80. 
Ensure that the listed domains point to this machine and that it can accept inbound 
connections from the internet.

Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. 
See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more
details.

 

처음에 jwt 필터링때문에 안되는가 하고 필터링을 전부 비활성화하고 했더니 401 에러에서 404에러로 바뀌었다.

 

다들 그냥 쉽게 넘어가는 문제인 것 같은데 해결이 안되서 머리가 터질거 같음.

아무래도 해당 과정을 조금 더 깊게 분석해야 할 것 같다.