도메인 DNS 설정 이후, Docker을 이용한 Nginx + HTTPS 적용하는 내용입니다!
HTTP(포트번호 80)로 들어오는 요청을 HTTPS(포트번호 443)로 redirect 해주기
1. HTTPS 적용
1. Docker로 nginx의 이미지를 불러오기
docker pull nginx
2. 80:80, 443:443 포트를 열어주어 컨테이너를 띄우기
sudo docker run --name nginx -d -p 80:80 -p 443:443 nginx
3. HTTPS 설정을 하기 위해 컨테이너의 내부로 들어가기
sudo docker exec -it nginx /bin/bash
4. Let’s Encrypt 클라이언트 다운로드
ubuntu 18.04 버전 이상에서는 다음 명령어를 이용해 Let’s Encrypt 클라이언트를 다운로드하면 됨!
$ apt-get update
$ apt-get install vim
$ sudo apt-get install certbot
$ apt-get install python3-certbot-nginx
5. Nginx ssl 설정을 위해 /etc/nginx/conf.d 디렉토리에 domain‑name.conf 라는 파일을 만들어 내용 작성
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name example.com www.example.com; # 자신의 도메인
}
(server_name은 자신이 사용하는 도메인 이름을 적으면 됨)
6. 설정 완료 후, nginx 컨테이너를 재시작한다. (nginx 컨테이너 밖)
docker restart nginx
2. Nginx 컨테이너 안에 접속해 SSL/TLS 인증서를 받아보자!
1. 다음 명령을 실행하여 NGINX 플러그인으로 인증서를 생성
$ certbot --nginx -d example.com -d www.example.com
2. certbot이메일 주소를 입력하고 Let’s Encrypt 서비스 약관에 동의하는 것을 포함하여 HTTPS 설정을 구성 하라는 메시지에 응답
- 인증서 생성이 완료되면 NGINX가 새 설정으로 다시 로드됨 → certbot인증서 생성에 성공했으며 서버에서 인증서 위치를 지정하는 메시지를 생성
Congratulations! You have successfully enabled https://example.com and https://www.example.com
-------------------------------------------------------------------------------------
IMPORTANT NOTES:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com//privkey.pem
Your cert will expire on 2023-07-30.
(참고 : Let’s Encrypt 인증서는 90일 후에 만료)
domain‑name.conf 를 보면 다음과 certbot같이 수정 되었음을 알 수 있음!
3. Let’s Encrypt 인증서 자동 갱신
1. crontab 설치
sudo apt install cron -y
2. crontab 파일 열기
$ crontab -e
3. certbot 매일 실행할 명령을 추가 → 이 예에서는 매일 정오에 명령을 실행 (이 명령은 서버의 인증서가 다음 30일 이내에 만료되는지 확인하고 만료되면 갱신, --quiet지시문은 출력 certbot을 생성하지 않도록 지시)
0 12 * * * /usr/bin/certbot renew --quiet
4. 파일을 저장하고 닫으면 설치된 모든 인증서가 자동으로 갱신되고 다시 로드됨
다음 글에서는 Nginx로 온 요청을 스프링부트 서버로 리다이렉트 시키는 과정을 다뤘다 !
다음글 ↓↓
[Docker] Spring Boot + Nginx 연동해서 배포하기
이전 글에 이어서, Nginx로 온 요청을 스프링부트 서버로 리다이렉트 시키는 과정을 다룹니다! 이전글 ↓↓ [Docker] Nginx + HTTPS 적용 도메인 DNS 설정 이후, Docker을 이용한 Nginx + HTTPS 적용하는 내용입
koeyhk.tistory.com
참고 자료:
Let’s Encrypt 인증서로 NGINX SSL 설정하기
이 모범 사례에서는 Let’s Encrypt 클라이언트를 사용하여 인증서를 생성하는 방법과 이를 사용하도록 NGINX 오픈소스 및 NGINX Plus를 사용하여 nginx ssl 설정을 자동으로 구성하는 방법을 다룹니다.
nginxstore.com
'Docker' 카테고리의 다른 글
[Docker] Spring Boot + Nginx 연동해서 배포하기 (0) | 2023.07.30 |
---|
도메인 DNS 설정 이후, Docker을 이용한 Nginx + HTTPS 적용하는 내용입니다!
HTTP(포트번호 80)로 들어오는 요청을 HTTPS(포트번호 443)로 redirect 해주기
1. HTTPS 적용
1. Docker로 nginx의 이미지를 불러오기
docker pull nginx
2. 80:80, 443:443 포트를 열어주어 컨테이너를 띄우기
sudo docker run --name nginx -d -p 80:80 -p 443:443 nginx
3. HTTPS 설정을 하기 위해 컨테이너의 내부로 들어가기
sudo docker exec -it nginx /bin/bash
4. Let’s Encrypt 클라이언트 다운로드
ubuntu 18.04 버전 이상에서는 다음 명령어를 이용해 Let’s Encrypt 클라이언트를 다운로드하면 됨!
$ apt-get update
$ apt-get install vim
$ sudo apt-get install certbot
$ apt-get install python3-certbot-nginx
5. Nginx ssl 설정을 위해 /etc/nginx/conf.d 디렉토리에 domain‑name.conf 라는 파일을 만들어 내용 작성
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name example.com www.example.com; # 자신의 도메인
}
(server_name은 자신이 사용하는 도메인 이름을 적으면 됨)
6. 설정 완료 후, nginx 컨테이너를 재시작한다. (nginx 컨테이너 밖)
docker restart nginx
2. Nginx 컨테이너 안에 접속해 SSL/TLS 인증서를 받아보자!
1. 다음 명령을 실행하여 NGINX 플러그인으로 인증서를 생성
$ certbot --nginx -d example.com -d www.example.com
2. certbot이메일 주소를 입력하고 Let’s Encrypt 서비스 약관에 동의하는 것을 포함하여 HTTPS 설정을 구성 하라는 메시지에 응답
- 인증서 생성이 완료되면 NGINX가 새 설정으로 다시 로드됨 → certbot인증서 생성에 성공했으며 서버에서 인증서 위치를 지정하는 메시지를 생성
Congratulations! You have successfully enabled https://example.com and https://www.example.com
-------------------------------------------------------------------------------------
IMPORTANT NOTES:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com//privkey.pem
Your cert will expire on 2023-07-30.
(참고 : Let’s Encrypt 인증서는 90일 후에 만료)
domain‑name.conf 를 보면 다음과 certbot같이 수정 되었음을 알 수 있음!
3. Let’s Encrypt 인증서 자동 갱신
1. crontab 설치
sudo apt install cron -y
2. crontab 파일 열기
$ crontab -e
3. certbot 매일 실행할 명령을 추가 → 이 예에서는 매일 정오에 명령을 실행 (이 명령은 서버의 인증서가 다음 30일 이내에 만료되는지 확인하고 만료되면 갱신, --quiet지시문은 출력 certbot을 생성하지 않도록 지시)
0 12 * * * /usr/bin/certbot renew --quiet
4. 파일을 저장하고 닫으면 설치된 모든 인증서가 자동으로 갱신되고 다시 로드됨
다음 글에서는 Nginx로 온 요청을 스프링부트 서버로 리다이렉트 시키는 과정을 다뤘다 !
다음글 ↓↓
[Docker] Spring Boot + Nginx 연동해서 배포하기
이전 글에 이어서, Nginx로 온 요청을 스프링부트 서버로 리다이렉트 시키는 과정을 다룹니다! 이전글 ↓↓ [Docker] Nginx + HTTPS 적용 도메인 DNS 설정 이후, Docker을 이용한 Nginx + HTTPS 적용하는 내용입
koeyhk.tistory.com
참고 자료:
Let’s Encrypt 인증서로 NGINX SSL 설정하기
이 모범 사례에서는 Let’s Encrypt 클라이언트를 사용하여 인증서를 생성하는 방법과 이를 사용하도록 NGINX 오픈소스 및 NGINX Plus를 사용하여 nginx ssl 설정을 자동으로 구성하는 방법을 다룹니다.
nginxstore.com
'Docker' 카테고리의 다른 글
[Docker] Spring Boot + Nginx 연동해서 배포하기 (0) | 2023.07.30 |
---|