반응형
GCE에 https를 적용하기 위해 가장 간단한 방법은 GCP의 load balancer 기능을 이용하는 것입니다.
관련 내용은 아래 링크에서 확인할 수 있습니다. 하지만, 이 방법을 사용할 경우 시간 당 비용을 지불해야 됩니다.
https://cloud.google.com/load-balancing/docs/ssl-certificates
부하가 작을 경우 큰 비용이 아니지만, 작은 서비스를 시작하는 사람에게는 부담이 될 수 있습니다.
Nginx를 이용하면 무료로 https를 적용할 수 있다.
GCE에 ubuntu 18.04 OS를 기준으로 방법을 설명하겠다.
Nginx
1. nginx 설치
sudo apt update
sudo apt install nginx -y
2. 발급받은 도메인을 nginx에 등록
sudo nano /etc/nginx/nginx.conf
>> /etc/nginx/nginx.conf
events {}
http {
server {
listen 80;
server_name [발급받은 도메인 url];
location / {
proxy_pass [작동 중인 서버 앱 주소. ex) http://localhost:3030];
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
3. nginx 재시작
sudo service nginx restart
sudo service nginx reload
4. http 접속 테스트
curl http://[도메인주소]
Let's Encrypt
1. Let's Encrypt에서 무료로 제공하는 인증서를 받기 위해 certbot을 설치한다.
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx
2. 아래 명령어를 실행하면 certbot이 인증서를 이용해 Nginx 서버가 https 응답을 할 수 있게 해준다.
sudo certbot --nginx
3. Nginx 설정 파일이 제대로 설정되었는지 확인한다.
- certbot에 의해 자동으로 생성된 라인에는 # managed by Certbot 이런 주석이 붙어있다.
4. 접속 테스트
curl https://[발급받은 도메인]
인증서 자동갱신을 cron에 등록해놓기
무료인증서의 유효기간은 3개월이므로 3개월마다 갱신해줘야 한다. 까먹을 경우를 대비해 cron에 자동갱신 명령어를 등록해놓는다.
1. crontab 실행
sudo crontab -e
2. 85일마다 한번씩 갱신하고, Nginx 서버를 재시작시킨다.
>> cron file
0 12 */85 * * sudo certbot renew --renew-hook="sudo service restart nginx"
반응형
'프로그래밍 > invest helper' 카테고리의 다른 글
Container 내 python앱에서 Google Error Reporting 사용하기 (0) | 2020.12.30 |
---|---|
Portainer를 이용해 container 모니터링하기 (0) | 2020.12.29 |
GCE (Google Compute Engine)에 mysql-server 설치하기 (0) | 2020.12.28 |
GCP Compute engine에서 Cloud Run으로 이전하기 (0) | 2020.12.21 |
댓글