Https - 개요
오라클 클라우드로 토이 프로젝트를 진행한지 3달정도 진행되었다. http로 운영해도 딱히 문제는 없었지만, 뭔가 피싱사이트 같은 느낌이 들어서 https에 대해서 아는 지식도 없겠다 한번 알아보기 시작했다.
Ubuntu Nginx 환경에서 CertBot을 사용하여 https 사용하기
때마침 Ubuntu에 Nginx를 기용하고 있는 상황이라
참고가 될 것 같아서, 블로그에 따라 진행해봤다.
※ 문제 해결 v1
Nginx를 이미 domain 등록해서 서버를 띄워 놓았고 관련 패키지들만 단순히 다운로드 받아서 진행하면 될 줄 알았다.
- 실행 명령어 목록
apt-get update
apt-get install software-properties-common
add-apt-repostiory universe
add-apt-repository ppa:certbot/certbot
apt-get install python-certbot-nginx
1) 첫번째로 "Unable to locate package OOO"를 겪었다.
/etc/apt/ 패키에서 sources.list 를 vi 에디터로
편집해서 apt-update로 해결 시도를 해보았다. (실패)
2) 첫번째 문제에서 너무 헤매서 5번으로 건너뛰었다.
5번 명령어로 실행해도 문제없이 Certbot이 정상 설치가 되는 것
같았다. 하지만 여기서 문제가 한가지 더 발생했다.
3) 서비스 중인 도메인의 목록을 등록해주어야 하는데,
자꾸 등록한 도메인들을 DNS record에서 찾을 수 없다고 에러가
떨어졌다. 정상적으로 서비스(도메인)가 동작하고 있는게 확인됐고,
문제 해결에 확신이 없어 처음부터 다시 알아보기 시작했다.
* /etc/apt/sources.list :
apt가 가져 올 수 있는 위치 정보를 담고 있는 파일
1. Unable to locate package OOO - 링크
※ 문제 해결 시도 v2
* 일단 답답해서 apt-purge와 auto remove를 사용해서 패키지들을 전부 지워줬다. 구글링해서 알아본 Certbot은 Standalone, Webroot 방식들은 대부분 비슷했고, 문제는 내 장비와 로컬쪽에 있는 것 같아서 해결 노선을 변경했다.
먼저 Ubuntu 버전을 확인해봤다. "ubuntu@example $ lsb_release -a"를 사용해서 본 결과 22.04 버전이였다. 혹시 22.04 버전에서 문제가 생기는게 아닌가 싶어서 알아보니 Certbot은 Snap pakcage를 이용해서 인스톨하는 것을 권장한 다고 한다.
- 실행 명령어 목록
snap install core; snap refresh core
apt remove certbot - (certbot이 인스톨 되어있을 경우)
snap install --classic certbot
certbot --nginx -d example.com -d www.example.com
1) 문제 해결 시도 첫번째에서 겪었던 unbale to locate package
example이 말끔하게 사라졌다. Certbot 인스톨까지 깔끔하게 완료,
도메인만 등록하면 되는 상황
2) 명령어 3번에서 스무스하게 진행하던 와중, Certbot 도메인 등록
과정에서 또 다시 한번 막혔다.
이제껏 해결해 왔던 것이, 이 문제를 해결하기 위한 것이 아님을
깨닫고 흥분됐다. 그래도 어쩌겠는가 이번에는 에러 문구를 유심히 봤다.
"certbot --nginx -d example.com -d www.example.com"
위의 명령어를 치고서 에러가 났는데, 도메인 레코드에서 들고 올 수
없다는 에러를 example.com이 아니라 www.example.com에서 났다.
불현듯 스쳐지나가는 생각이 내가 www.example.com을 등록해줬나?
※ 문제 해결 마지막
* 이용중인 호스팅 콘솔에 들어가서 확인해보았다. 역시나, www 관련 호스트는 등록을 안했었다.
가X아 콘솔 접속 이후, A 타입 @ www 설정해주었다.
콘솔창에 DNS 설정 수정후 짧게 기도를 올렸다.
이것마저 안 된다면 당분간은 마음이 꺾여버릴 것 같았다.
15분정도 지난 후 확인해보니 https://www.example.com,
https://example.com으로 정상 접속이 확인이 됐다.
굿
1. 에러를 제발 유심히 잘 보자.
2. Ubuntu 22.04 패키지 관리할 때 해당 모듈 권장사항을 읽어보자.
3. 주니어 개발자는 아직도 갈길이 멀다.
하... 생각해보니 https로 리다이렉트를 해주지 않아서, http로
접속이 가능하다. 다행히도 해당 개선사항은 nginx에서 크게
문제없이 해결 가능할 것 같다.
피곤해서 내일 해야겠다.
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.