리눅스

 

 

도메인 설정 기본 설정 방법 

 

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에서 정상적으로 동작하도록 하기 위해 다음 명령어로 다시 포트포워딩 규칙을 설정해보세요:

  1. 포트 80 규칙 다시 추가:

    netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.0.0.1 connectport=80 connectaddress=172.22.7.130
    

     

     

     

  2. 포트 443 규칙 다시 추가:

    netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=172.22.7.130
    

     

     

이렇게 하면 삭제된 규칙들이 다시 추가되어 Nginx가 정상 작동할 수 있습니다.

Nginx가 작동하는지 확인

  1. Windows 방화벽 설정 확인:
    혹시 방화벽 규칙이 삭제되었을 수도 있으니 다음 명령어로 다시 한 번 방화벽 규칙을 추가해보세요.

    netsh advfirewall firewall add rule name="Allow WSL2 Nginx" dir=in action=allow protocol=TCP localport=80,443
    

     

     

  2. WSL에서 Nginx 상태 확인:

    WSL2 터미널에서 netstat -tnlp 명령어를 사용해 Nginx가 포트 80과 443에서 제대로 동작하고 있는지 확인하세요.

    sudo netstat -tnlp
    

     

     

이후 Nginx가 다시 작동하는지 확인해보세요.

 

 

설정이 제대로 되었는지 다시 확인하려면 아래 명령어를 사용하세요:

netsh interface portproxy show all

 

 

 

 

 

 

 

 

 

 

 

about author

PHRASE

Level 60  라이트

뱁새는 깊은 숲속에 집을 짓는다고 해도 나뭇가지 하나에다 짓고, 방축쥐는 저 황하의 물을 먹는다고 해도 그 조금마한 배 하나를 채울 뿐이다. 아무리 욕심을 부려도 실제로 차지할 수 있는 재보(財寶)는 얼마 되지 않는다. -장자

댓글 ( 1)

댓글 남기기

작성
  •    
  •    
  •  

리눅스 목록    more