[Portfolio] HTTPS 연동

2025. 1. 22. 08:58Etc Project/Portfolio

 

 

https://kwonputer.shop/

 

Kortfolio

PROFILE 권태완 1995.11.11 / 서울특별시 광진구 taewandev56@gmail.com https://kwonputer.tistory.com/ 서로 다른 언어를 이해하는 통역사처럼, 기술과 사용자의 니즈를 이해하고 연결하며 소통의 다리가 되고자 하

kwonputer.shop

 

https://github.com/KwonGeneral/Kortfolio.git

 

GitHub - KwonGeneral/Kortfolio: 포트폴리오

포트폴리오. Contribute to KwonGeneral/Kortfolio development by creating an account on GitHub.

github.com

 

이번엔 HTTPS 연동에 대해서 다루겠습니다~

여기까지하면 웹페이지 개발은 끝납니다.

 

'가비아' 같은 호스팅 업체나 AWS에서도 HTTPS 인증을 지원하지만, 유료이기때문에 저는 번거롭지만 무료로 인증받을 수 있는 'Let's Encrypt'를 사용하겠습니다. 제 기억으로는 2달인가 3달마다 인증서를 갱신해줘야했던 것으로 기억이 납니다. 그래서 리눅스의 certbot을 사용해서 배치를 돌리겠습니다.

 

먼저 Certbot 패키지를 설치해줍니다.

sudo dnf update -y
sudo dnf install python3 augeas-libs
sudo python3 -m pip install certbot certbot-nginx

 

그 다음으로 SSL 인증서를 발급받아줍니다.

sudo certbot --nginx -d kwonputer.shop -d www.kwonputer.shop

 

 

Django로 넘어오셔서, settings.py에 아래와 같이 코드를 추가해줍니다.

SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

 

그 다음에, 다시 리눅스로 돌아오셔서 'sudo cat /etc/nginx/conf.d/kortfolio.conf' 명령어를 통해, Certbot이 제대로 적용이 됬는지 확인해봅시다.

아래와 같은 문구가 추가되어있으면 정상입니다.

listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/"도메인명"/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/"도메인명"/privkey.pem;

 

서비스를 재시작하고 마무리 해줍시다!

sudo systemctl restart nginx
sudo systemctl restart gunicorn

 


추가로, 만약 static 파일을 추가하고 수정한다면 아래와 같은 순서대로 명령어를 입력해주세요.

# venv 활성화
source venv/bin/activate

# static 파일 권한 설정
sudo chown -R ec2-user:ec2-user /var/www/static

# static 파일 수집
python manage.py collectstatic --noinput

# 생성된 파일들을 /var/www/static으로 복사
sudo cp -r static/* /var/www/static/

# 권한 설정
sudo chown -R nginx:nginx /var/www/static
sudo chmod -R 755 /var/www/static

# 서비스 재시작
sudo systemctl restart nginx
sudo systemctl restart gunicorn

 

HTTPS가 정상적으로 인증 되면서, css나 이미지도 정상적으로 불러와집니다.

예전에는 정말 맨땅에 헤딩하면서 삽질하던것들인데 역시 경험이 중요하긴하네요.

 

이렇게 포트폴리오 웹페이지 배포 과정에 대해서 다뤄봤습니다.