sudo apt update && sudo apt upgrade -y
# NGINX 설치
sudo apt install nginx -y
# Snap 패키지 매니저 설치
sudo apt install snapd -y
sudo snap install core
sudo snap refresh core
# Certbot 설치
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --manual --preferred-challenges dns -d "*.domain.com" -d "domain.com"
sudo vi /etc/nginx/sites-available/default
server {
listen 80;
server_name www.domain.com blog.domain.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name www.domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5000;
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;
}
}
server {
listen 443 ssl;
server_name blog.domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5001;
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;
}
}
$ sudo crontab -e
0 0 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"
sudo nginx -t
sudo systemctl restart nginx
Configure Nginx with a Wildcard SSL Certificate (Let´s Encrypt)