항해14기 본과정/항해14기 개발일지

[항해 14기] 개발일지47 (실전프로젝트 - HTTPS 2차 시도)

스쿼트잘함 2023. 5. 30. 16:31

실전프로젝트 - 2주차

 

1. 회의 내역(BE 관련)

1) FE - BE 기능 연결 진행

2) 엘라스틱 서치 추가

3) Node반 스터디 회의

- 기초CS와 알고리즘/자료구조 중 투표 예정

 

 

 

2. 작업 내역

1) https 2차 시도

 

 

 

3. 트러블슈팅/회고

1) let's encrypt의 certbot 방식으로 다양한 레퍼런스를 참조하여 진행

- 오늘도 약 8시간의 도전이 모두 실패하였고 마지막으로 cerbot 홈페이지의 가이드를 따라 진행(https://certbot.eff.org/instructions?ws=nginx&os=ubuntufocal)

- 여전히 실패하였고, 에러코드는 동일하게 well-known 챌린지의 404 이슈

- 에러 로그

ubuntu@ip-XXX-XX-XX-XXX:/etc/nginx/sites-enabled$ sudo certbot certonly --standalone -d (내 도메인)
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for (내 도메인)
Waiting for verification...
Challenge failed for domain (내 도메인)
http-01 challenge for (내 도메인)
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: (내 도메인)
   Type:   unauthorized
   Detail: (내 IP) : Invalid response from
   http://(내 도메인)/.well-known/acme-challenge/OS2AQnldOsQ0tNI5tNKnUjXKHk0NeHegf8jvOUrosOU:
   404

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.

- 아래 명령어로 상세 에러로그를 조회하여도 동일한 내용의 에러

sudo cat /var/log/letsencrypt/letsencrypt.log

 

2) 실패 원인 예상

- 다른 에러들은 전부 해결하였으나 결국 최종 실패 로그들은 아래 2가지의 경우로 남은 상태

- 방화벽 이슈 : ubuntu의 ufw 설정은 모두 꺼두었고, ec2 보안그룹에서 필요한 포트들은 모두 열어 준상태여서 이건 아니라고 판단

- 내 도메인의 레코드는 ec2의 퍼블릭 ipv4와 잘 연결되어 있었지만, 어떤 이유에서인지 certbot의 진행 로직에서는 내 도메인으로의 접근거절됨

- 결국 내 도메인에 대한 dns 설정 연결이 certbot의 기준으로는 제대로 설정되지 않았다는 것으로 판단, 시간을 많이 썼는데도 불구하고 해당 부분에 대한 해결이 되지않아 다른 ssl 발급 방식으로 전환할 예정

 

3) nginx 이슈

- nginx설정을 건드리다가 내 ubuntu ec2와 연결이 끊어짐

ubuntu@ip-XXX-XX-XX-XXX:/etc/nginx/sites-available$ sudo certbot --nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log

Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: (내 도메인)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):
Requesting a certificate for (내 도메인)

Certbot failed to authenticate some domains (authenticator: nginx). The Certificate Authority reported these problems:
  Domain: (내 도메인)
  Type:   unauthorized
  Detail: 내ip: Invalid response from http://(내 도메인)/.well-known/acme-challenge/-E4HTNHFreJek-JLcLwUBijiKTfdgzXUkhR6_5eZbTY: 404

Hint: The Certificate Authority failed to verify the temporary nginx configuration changes made by Certbot. Ensure the listed domains point to this nginx server and that it is accessible from the internet.

Some challenges have failed.
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.

- 다시 연결하려 시도하였으나 복구가 잘 되지 않았고,  certbot 에 너무 많은 시간을 투자한 상태라서 우선 삭제 후 추후에 다시 세팅 예정

 

4) cerbot 방식 실패 회고

- 목요일에 aws certificate manager방식으로 변경하여 진행 예정

- 이정도로 레퍼런스가 막연하고 시간을 많이 잡아먹는 이슈는 처음이라 에러 로그와 진행했던 플로우들을 체계적으로 정리하지 못하였음. 이로 인해 멘토님께 질문하기도 애매한 상황. 다음 부터는 새로운 영역에 대한 시도를 하게 되었을 때, 작업 flow를 꼼꼼하게 기록할 예정

- 시간의 마지노선을 지정해 놓고, 시간내로 완료 못할 시 혼자 해결하겠다는 고집을 버리고 조언을 구하는 것이 효율적인 개발의 방식이자 개발자로서의 태도인것으로 생각이 정리됨