스마트폰 우분투로 서버만들던 중 포트포워딩 질문드립니다.
gcp에 이어 이번엔 구형 스마트폰으로 서버를 만들어보고 싶어서 현재 시도중에 있습니다(대체 왜...)
오늘 하루종일 시도한 끝에 거의 끝에 온 것 같은데 마지막 포트 때문에 막혀있어서 질문드립니다.
인터넷에서 자료 찾는 방법도 잘 모르겠습니다..
상황은 이렇습니다.
현재 스마트폰에 우분투를 설치했고 어찌저찌 ssh를 연결하여 컴퓨터에서 작업하고 있습니다.
이제 nginx를 깔고 시도해봤습니다만 계속 페이지를 못 찾더군요.
혹시나 하고 sites-enabled의 default 파일에서 listen 80이라고 쓰여진 2개를 nnnn으로 바꾸고 공유기 설정에 들어가 포트포워딩에서 서비스 포트와 내부포트를 모두 nnnn으로 바꾸니 내부ip 외부ip에서 전부 성공했습니다.
그런데 문제는 사이트 접속이
http://{내ip}
http://{내주소}.com
으로 접속돼야 하는데 저는
http://{내ip}:nnnn
http://{내주소}.com:nnnn
으로 해야 접속이 된다는 것입니다. 사실 여기까지만이면 어차피 제 개인용으로 쓸 것이니 문제가 없는데
letsencrypt로 인증이 안된다는 것입니다.
sudo certbot --nginx -d {내ip}.com
sudo certbot --nginx -d {내ip}.com:nnnn
위의 것들을 모두 시도해보고 --http-01-port를 시도해봐도 Timeout during connect (likely firewall problem) 오류만 뜹니다.
제가 궁금한 것은
1. 어떻게 80번으로 사이트를 열 수 있을지
2. 안된다면 80번 외의 포트로 ssl인증이 가능한지(그리고 443외의 https를 받을 수 있는지)
입니다.
진짜 이 부분은 끝까지 안 되더군요ㅠㅠ
공유기에서 스마트폰으로 80 443 포트포워딩은 정상적으로 된상태일까요??
Ssl 인증서를 발급받기위해서는 반드시 80,443포트가 열려있어야되는걸로 알고있습니다.
도메인 기반인증의 경우에는 예외가 될수도있으니 한번 구글링해봐야할듯하구요
https://serverfault.com/questions/805666/certbot-letsencrypt-on-different-port-than-443
Dns text 레코드인증으로도 가능해보이긴합니다.
늦은 시간에 답변 감사합니다.
저도 추가 확인해보니 kt외의 통신사는 80번이 막혀있을 경우가 많아 문제가 있을 수 있다는 글들을 확인했습니다. 저는 cj이므로 포트를 바꿔서 시도 중입니다. duckdns에 txt record를 붙이면 인증이 된다는 것 같아서 해봤더니 잘 안 되네요;;
root@localhost:~# https://www.duckdns.org/update?domains=도메인.duckdns.org&token=토큰&txt=쓰라는텍스트&verbose=true
[1] 6421
[2] 6422
-bash: https://www.duckdns.org/update?domains=도메인.duckdns.org: No such file or directory
[3] 6423
[1] Exit 127 https://www.duckdns.org/update?domains=도메인.duckdns.org
[2]- Done token=토큰
[3]+ Done txt=쓰라는텍스트
창을 두 개 띄워놓고 하나는 certbot에서 txt받아오고 나머지 창에서 duckdns에서 치라는 것(위)을 쳤더니 뭔가 문제가 계속 생기고 있습니다... 처음 해보는지라 무슨 뜻인지 모르겠어서 다시 검색중입니다...
꼼수라면 꼼수겠지만,,, gcp나 오라클클라우드에서 인증서를 받아서 옮기는방법도있습니다
인증 방식에 문제가 있음을 깨달았습니다...
GET도 모르는 저의 무식에 한탄하게 되네요.
어떻게든 letsencrypt에서 제 duckdns 주소로 인증을 받았습니다.
근데 문제는 정작
https://{내주소}.com
https://{내주소}.com:nnnn
은 접속이 안돼서 방법을 찾고 있습니다.
클라우드에서 인증서 옮기기는 나중에 시도해보겠습니다. 감사합니다.
신경써주셔서 감사합니다. 방금 https접속 성공했습니다.
default 파일에
server {
listen {새로운https포트} default ssl http2;
listen [::]:{새로운https포트} default ssl http2;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name {내주소};
ssl_certificate /etc/letsencrypt/live/{내주소}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{내주소}/privkey.pem;
}
를 삽입하니
https://{내주소}.com:{새로운https포트}
로 넘어오더군요.
강제로 넘어오도록 설정해줘야 한다는 것을 겨우 찾았습니다..
이제 nextcloud까지만 설치하면...(먼 산)
ㅎㅎ 잘되셨다니 다행입니다
삽질하나하나 하면서 됐을때 짜릿한것도있죠!
클라우드에서 시놀로지로 인증서 옮기는 걸 자동화 할 수 있나요?
수동으로야 가능하겠지만 3개월마다 옮겨주려면 귀찮아질꺼 같아요ㅠ.ㅠ
통신구간을 뚫어놓는다면야,, 자동화는 얼마든지 가능합니다.
NFS로 연결해놓은상태에서 인증서 발급받고 cron 과 같은 스케줄링 + scp로 이동도 가능하구요.
다만 사전준비사항과 테스트를할때 시간이 걸리긴하겠죠 ㅎㅎ
cmt alert