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