이번 프로젝트에서는 aws를 안쓰기로 했다.
aws를 안쓰면서 생기는 가장 큰 문제는 ssl인증서와 내 도메인으로 배포하는 부분이였다.
먼저 https로 배포하기 위해선 가장 먼저 수행되어야 하는건 ssl 인증서 발급이다.
인증서를 발급해주는 서비스를 하는 사이트는 많이 있지만 비용이 만만치 않다..
가비아 기준으로 제일 저렴한 인증서 비용이 1년에 4만원이다
다행이 우리는 차선책이 존재한다
바로 Let's Encrypt이다
Let's Encrypt는 무료 인증서 보급을 통해 https의 확산을 늘리겠다는 취지로 시작된 비영리 프로젝트이다.
무료이긴 하지만 단점은 인증 기간이 매우 짧다
# 1. nginx 설치
sudo apt install nginx
# 2. letsencrypt 설치
sudo apt-get install letsencrypt -y
# 3. certbot을 통한 ssl 인증
certbot certonly --standalone -d 본인도메인
# 3번과정이 안될 시 TXT 인증
certbot certonly --manual --preferred-challenges dns -d 본인도메인
3번을 하기전에 먼저 해야할게 있다.
해당 도메인에 대한 dns 설정을 해줘야한다.
도메인을 구매한 곳 에서 dns설정을 A레코드로 성정을 해주고
certbot 명령어를 통해 ssl인증을 하면 인증서가 발급이 된다
인증서는 /etc/letsencrypt/live 경로에 본인 도메인으로 된 폴더안에 생성이되고
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8001, ssl_keyfile="/etc/letsencrypt/live/도메인/privkey.pem", ssl_certfile="/etc/letsencrypt/live/도메인/fullchain.pem")
명령어를 통해 서버를 열면
https://도메인:8001 로 접속을 할 수 있게된다.
중간에 권한 관련된 에러가 뜰 수 있는데 chmod 명령어를 통해 권한관리를 해줘야 함
'프로젝트 코드리뷰 > private' 카테고리의 다른 글
반응형 웹 모바일 100vh 문제 (0) | 2024.06.11 |
---|---|
문장 비교 (0) | 2024.06.11 |