아래의 사진에서 처럼 logIn과 같은 보안관련 요청-응답의 경우, https 프로토콜간의 통신만을 허용한다. 따라서, 이를 위해 SSL 인증서를 발급 받아 REST API 서버에도 적용시켜주고자 한다.
certbot 설치
sudo apt-get update
sudo apt-get install software-properties-common (ref num 1)
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
(ref num 1 수행 시 에러 참고: https://nali.tistory.com/105)
해결 요약:
리눅스 /etc/nginx/sites-enabled/default
경로의 파일에서,
#listen [::]:80 default_server;
라는 ipv6 리스닝 부분을 삭제하거나 주석 처리한다.
이후, /etc/init.d/nginx restart
로 서버 재시작으로 설정 변경 반영
systemctl status nginx.service
해당 명령어로 상태 확인 후 설치 재시도.
(해결 완료된 모습)
certbot 이용해 SSL 인증서 생성
sudo certbot certonly --standalone
- 생성된 인증서는 /etc/letsencrypt/live/<your-domain-name>/ 디렉토리에 저장됩니다. 이 디렉토리에는 fullchain.pem (서버 인증서와 중간 인증서를 포함하는 파일)과 privkey.pem (개인 키 파일)이 포함되어 있습니다.
netstat -anp | grep 80
을 이용해 충돌 80 포트 프로세스 확인(기존 가동 중 nginx)sudo systemctl stop nginx
을 이용한 해당 프로세스 중지sudo systemctl start nginx
docker run -v /etc/letsencrypt/live/<your-domain-name>:/etc/nginx/certs:ro -d -p 80:80 -p 443:443 nginx
sudo docker-compose up --build