반응형
필요한 디렉토리 생성
mkdir -p demo/logs demo/certbot demo/static
demo/nginx.conf 추가
server {
listen 80;
server_name mydemo.kr www.mydemo.kr;
access_log /demo/logs/nginx.log main;
location /.well-known/acme-challenge/ {
allow all;
root /demo/certbot/static;
}
location / {
return 301 https://$host$request_uri;
}
}
nginx 실행
version: "3.3"
services:
nginx:
container_name: nginx
image: nginx:1.17.9
environment:
TZ: "Asia/Seoul"
ports:
- "80:80"
- "443:443"
volumes:
- ./demo/nginx.conf:/etc/nginx/conf.d/demo.conf
- ./demo:/demo
docker-compose up -d
인증서 발급
docker run -v ./demo/certbot/letsencrypt:/etc/letsencrypt -v ./demo/certbot/static:/demo/certbot/static certbot/certbot certonly --webroot --webroot-path=/demo/certbot/static --non-interactive --agree-tos -m mydemo@naver.com -d mydemo.kr
demo/nginx.conf 수정
- 443 설정 추가
- 아래 내용으로 수정 -> nginx 재시작 -> https로 요청을 받을 수 있음
server {
listen 80;
server_name mydemo.kr www.mydemo.kr;
access_log /demo/logs/demo.log main;
location /.well-known/acme-challenge/ {
allow all;
root /demo/certbot/static;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name mydemo.kr www.mydemo.kr;
access_log /demo/logs/demo.log main;
client_max_body_size 50m;
ssl_certificate /demo/certbot/letsencrypt/live/mydemo.kr/fullchain.pem;
ssl_certificate_key /demo/certbot/letsencrypt/live/mydemo.kr/privkey.pem;
location / {
root /demo/static;
index index.html;
try_files $uri $uri/ =404;
}
}
인증서 갱신 - 테스트
- 아래 명령어를 통해 갱신이 가능한지 테스트 진행 가능
- 갱신 처리가 오래걸릴 수 있으므로 기다린다.(대략 5분)
docker run -v ./demo/certbot/letsencrypt:/etc/letsencrypt -v ./demo/certbot/static:/demo/certbot/static certbot/certbot renew --dry-run
인증서 갱신
- 아래 명령어를 만료 30일 미만으로 남았을 때 실행하면 인증서를 갱신할 수 있다.
- 갱신 후 nginx 재시작 필요
docker run -v ./demo/certbot/letsencrypt:/etc/letsencrypt -v ./demo/certbot/static:/demo/certbot/static certbot/certbot renew
반응형
'Development > Nginx' 카테고리의 다른 글
[Nginx] Echo Module 사용하기 (0) | 2019.09.07 |
---|---|
[Nginx] 설정 (0) | 2019.07.06 |
[Nginx] 설치 (0) | 2019.07.04 |