도메인 설정 기본 설정 방법
1. 단계
# /etc/nginx/sites-available/tomcat9.kro.kr.conf # Upstream definitions upstream tomcat9 { ip_hash; server 192.168.0.39:9090; } server { server_name tomcat9.kro.kr; location / { proxy_set_header Host $http_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; proxy_set_header X-NginX-Proxy true; proxy_pass http://tomcat9; proxy_redirect off; charset utf-8; } } server { if ($host = tomcat9.kro.kr) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name tomcat9.kro.kr ; return 404; # managed by Certbot }
2.단계
다음과 같은 명령어로 발급을 받는다.
sudo certbot --nginx -d 도메인명
sudo certbot --nginx -d tomcat9.kro.kr
에러가 나오는데, 현재 위에 설정한 파일에서 다음과 같은 설정을 하지 않아서 그렇다.
그러나, 다음 설정을 미래하면 발급자체가 안된다.
listen 443 ssl; server_name tomcat9.kro.kr; ssl_certificate /etc/letsencrypt/live/tomcat9.kro.kr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/tomcat9.kro.kr/privkey.pem; # Other SSL settings
root@DESKTOP-22M8BH7:/mnt/c/WINDOWS/system32# sudo certbot --nginx -d tomcat9.kro.kr Saving debug log to /var/log/letsencrypt/letsencrypt.log Requesting a certificate for tomcat9.kro.kr Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/tomcat9.kro.kr/fullchain.pem Key is saved at: /etc/letsencrypt/live/tomcat9.kro.kr/privkey.pem This certificate expires on 2024-11-25. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. Deploying certificate Could not install certificate NEXT STEPS: - The certificate was saved, but could not be installed (installer: nginx). After fixing the error shown below, try installing it again by running: certbot install --cert-name tomcat9.kro.kr Unsupported RSA key length: 1024 Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
3.발급되어 있는지 디렉토리 확인
ls -al /etc/letsencrypt/live/
4. 다음과 같이 변경
# /etc/nginx/sites-available/tomcat9.kro.kr.conf # Upstream definitions upstream tomcat9 { ip_hash; server 192.168.0.39:9090; } server { server_name tomcat9.kro.kr; location / { proxy_set_header Host $http_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; proxy_set_header X-NginX-Proxy true; proxy_pass http://tomcat9; proxy_redirect off; charset utf-8; } listen 443 ssl; ssl_certificate /etc/letsencrypt/live/tomcat9.kro.kr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/tomcat9.kro.kr/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = tomcat9.kro.kr) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name tomcat9.kro.kr ; return 404; # managed by Certbot }
5.발급에 오류가 있을 경우
삭제후 재발급
인증서가 제대로 발급되지 않았거나 문제가 있을 수 있으므로, 인증서를 삭제하고 재발급해 보세요: bash 코드 복사 sudo certbot delete --cert-name tomcat9.kro.kr sudo certbot --nginx -d tomcat9.kro.kr
6.갱신처리
인증서의 자동 갱신이 정상적으로 작동하는지 확인합니다:
sudo certbot renew --dry-run
기타 wsl 처리방법
심볼링크 설정방법
sudo ln -s /etc/nginx/sites-available/tomcat8.kro.kr.conf /etc/nginx/sites-enabled/
파워셀에서 포토 연동
https://generalcoder.tistory.com/m/22
주소 포트 주소 포트
--------------- ---------- --------------- ----------
192.168.0.39 1010 172.22.7.130 1010
127.0.0.1 80 172.22.7.130 80
0.0.0.0 443 443 <WSL_PORT>
#포트포워딩 내역 조회
netsh interface portproxy show all
###중요 192.168.0.39 각 포트들을 172.22.7.130 80 포트로 연결 시켜준다
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=192.168.0.39 connectport=8080 connectaddress=172.22.7.130
netsh interface portproxy add v4tov4 listenport=9090 listenaddress=192.168.0.39 connectport=9090 connectaddress=172.22.7.130
#포트포워딩 삭제
netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=172.22.7.130
============================ wsl 2 버전에서 =================
포트포워딩 규칙 다시 추가
Nginx를 WSL2에서 정상적으로 동작하도록 하기 위해 다음 명령어로 다시 포트포워딩 규칙을 설정해보세요:
포트 80 규칙 다시 추가:
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.0.0.1 connectport=80 connectaddress=172.22.7.130
포트 443 규칙 다시 추가:
netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=172.22.7.130
이렇게 하면 삭제된 규칙들이 다시 추가되어 Nginx가 정상 작동할 수 있습니다.
Nginx가 작동하는지 확인
Windows 방화벽 설정 확인:
혹시 방화벽 규칙이 삭제되었을 수도 있으니 다음 명령어로 다시 한 번 방화벽 규칙을 추가해보세요.netsh advfirewall firewall add rule name="Allow WSL2 Nginx" dir=in action=allow protocol=TCP localport=80,443
WSL에서 Nginx 상태 확인:
WSL2 터미널에서 netstat -tnlp 명령어를 사용해 Nginx가 포트 80과 443에서 제대로 동작하고 있는지 확인하세요.
sudo netstat -tnlp
이후 Nginx가 다시 작동하는지 확인해보세요.
설정이 제대로 되었는지 다시 확인하려면 아래 명령어를 사용하세요:
netsh interface portproxy show all
댓글 ( 1)
댓글 남기기