Vultr는 가상 서버VPS를 호스팅하는 업체 중 하나입니다. VPS 임에도 가격이 저렴하고 웹 호스팅 대비 빠른 속도의 서버를 이용할 수 있어 많은 사용자를 가지고 있는데요. VPS 1개당 기본적으로 1개의 IPv4를 제공해주고, 무료로 IPv6도 부여받을 수 있고4한국에도 리전이 있기 때문에 속도 부분에서 페널티 없이 사용이 가능하며 개인적으로도 사이트 UI등이 편해 AWS와 함께 자주 사용하고 있는 서비스입니다.
그래서 오늘은 이런 Vultr에서 CMS 블로그 도구로 유명한 워드프레스를 설치하고 HTTPS 프로토콜 적용을 위해 SSL 인증서를 설치하는 방법 그리고 인증서를 자동으로 갱신되도록 하는 방법을 단계별로 정리합니다.
튜토리얼 환경: 윈도우11, 크롬
Vultur 워드프레스 설치
Vultr에 가입 후 다음 과정을 진행합니다. 도메인은 구매된 상태를 가정하고 안내하니 참고합니다.
서버 선택 후 배포
- 처음 로그인하면 위와 같은 화면을 확인할 수 있습니다. 여기 Choose Server에서 원하는 형태의 서버를 선택할 수 있는데 Cloud Conputer를 탭합니다.
- 다음으로 CPU & Storage Technology 섹션에서 서버의 CPU와 저장장치를 선택할 수 있습니다. 개인적으로 각각의 버전을 모두 설치해서 워드프레스를 통해 사용해본 결과 별 차이는 없었습니다. 다만 최저 요금 구간인 5$는 가장 오른쪽에 위치한 Regular performance 에서만 선택이 가능하니 낮은 요금이 필요하다면 참고합니다. 본문에서는 AMD 로 진행합니다.
- 아래로 조금 스크롤하면 Server Location섹션에서 서버의 위치를 선택할 수 있습니다. 국내 사용자를 대상으로 워드프레스를 운영한다면 Seoul을 클릭합니다.
- Server lmage로 이동 후 Marketplace Apps 탭을 클릭합니다.
참고: 워드프레스는 OS에서 웹서버(Apache 또는 Nginx 등)와 PHP, DB가 설치된 상태에서 사용할 수 있는 것으로 Operating System 탭에서 운영체제를 직접 선택해 모두 수동으로 설치하는 것도 가능 합니다. 필자의 경우 메인 사이트는 세부적인 세팅을 위해 직접 설치해서 운영하고 있지만 이미지를 이용해 원클릭으로 설치하는 것이 아무래도 편리합니다.
- WordPress를 찾아 클릭합니다. 현재 운영체제는 Ubuntu 22.04에서 설치되었다는 내용도 표시됩니다.
- Server Size에서 서버의 사양과 Bandwidth를 선택할 수 있으며 원하는 스펙과 가격대를 선택합니다. 일단 처음 시작하는 경우 가장 저렴한걸로 진행해도 전혀 문제없습니다.
- Enable Auto Backups는 자동으로 서버를 백업해주는 옵션인데 유료고 추후 활성화할 수 있으니 일단 꺼두고 시작합니다. 필요시 아래 옵션들도 선택할 수 있지만 본문에서는 체크하지 않고 기본으로 진행합니다.
- 그리고 Marketplace App Requested lnformation에서 마킹한 영역은 필수 입력 필드이니 좌측에 이메일과 우측에 사이트의 타이틀을 지정합니다. 모두 다시 수정할 수 있습니다.
- 이제 가장아래 위치한 Deploy Now 버튼을 클릭하면 서버가 만들어지고 배포가 시작됩니다.
서버 배포 완료 및 워드프레스 접속
서배 선택 후 배포 후 잠시 기다리면 배포 작업이 완료되는데 이러면 거의 기본적인 세팅이 완료 된 것입니다.
- 배포 버튼을 클릭하면 위와같은 페이지로 이동되는데 여기서 생성이 진행되는 것을 확인할 수 있습니다.
- 배포는 생성이 완료되었다고 하더라도 추가적으로 5~10분간 세팅과정이 진행되며 위와 같은 메시지가 출력됩니다.
- 설치가 모두 완료된 뒤 대상 인스턴스를 클릭하면 위와 같은 상세 페이지로 이동 되는데 여기서 해당 서버와 관련 된 다양한 정보를 모두 확인할 수 있습니다.
- 아래로 조금 스크롤해서 내리면 ConfIguration and Administration의 WordPress Administration Panel 섹션을 확인할 수 있습니다. 여기서 위 링크를 클릭하면 워드프레스 대시보드로 이동할 수 있습니다. 바로 아래 로그인 시 사용될 사용자 이름과 암호가 같이 표시되어 있으니 참고합니다.
- 로그인 페이지로 이동되고 이곳에서 앞서 확인한 계정 정보를 입력 후 Log In버튼을 클릭합니다.
- 워드프레스가 모두 설치되었고 대시보드로 정상 접속이 되었습니다. 발행 일 기준으로 다음 버전들이 설치되고, 워드프레스와 관련 된 기본적인 내용들은 워드프레스 로그인 시 확인한 인스턴스 세부 페이지에서 확인할 수 있습니다.
- OS: Ubuntu 22.04
- nginx: 1.22.1
- MariaDB: 10.6.11
- PHP: 8.1.16
기본적인 내용들은 워드프레스 로그인 시 확인한 인스턴스 세부 페이지에서 확인할 수 있습니다.
Let’s Encrypt SSL 인증서 발급
위 과정으로 생성한 워드프레스는 기본적으로 SSL 인증서가 발급되지 않았기 때문에 브라우저를 통해 접속 시 경고 메시지가 출력되어 스팸사이트 같이 표시되는데 Let’s Encrypt SSL을 무료로 설치해서 적용할 수 있습니다.
참고: 다음에 안내하는 방식으로 인증서를 발급하기 위해서는 사용할 도메인이 필요하며 CNAME과 A 레코드와 같은 정보를 DNS서비스에 등록해야 합니다.
SSL 과 Let’s Encrypt SSL은
SSL과 Let’s Encrypt SSL이 무엇인지 대충 개념을 잡아두면 좋다고 생각해 짧게 정리합니다. 바로 설치하고 싶다면 다음 단계로 이동합니다.
SSL
사용자가 서버(웹사이트)에 접속 시 브라우저를 통해 데이터를 주고 받는데 이런 정보들의 보안을 강화하기 위해 암호화를 적용하게 되는데 이것을 SSLSecure Sockets Layer이라 합니다5. SSL을 사용하는 웹사이트의 URL에는 HTTP 대신 HTTPS 프로토콜이 표시되고 해당 주소로 접속 시 브라우저 주소창 옆에 자물쇠 아이콘이 표시됩니다.
Let’s Encrypt SSL
SSL 인증서는 원래 유료 구매해야하는 것으로 작게는 1년에 5만원부터 많게는 백만원 단위로 비용이 발생하게 되는데 개인이 블로그 사이트 하나 운영하면서 이런 비용을 지불하지는 못할 것6 입니다. 그래도 다행히 무료로 사용할 수 있는 SSL 인증서가 있는데 바로 Let’s Encrypt SSL입니다.
Let’s Encrypt SSL 은 비싼 SSL 구매 비용이 https 보급을 방해한다고 보고 여러 기관과 단체들이 모여 Let’s Encrypt SSL 이라는 인증 기관을 설립하고 인증서를 무료로 발급해주고 있습니다. 단 무제한으로 무료로 지원하는 것이 아닌 3개월에 한 번씩 갱신을 시켜줘야 하지만 자동화 도구를 이용하면 이를 별도 작업 없이 갱신할 수 있어 문제가 되지는 않습니다.
- 인증 절차 아주 간단
- 실시간 발급 가능
- 인증 유효기간이 3개월 이지만 자동 옵션으로 갱신 자동화 가능
- 무료 발급
- 멀티 도메인 지원 불가 (또 받으면 되고 이 또한 간단)
- SHA 서명 해시 알고리즘으로 안전
Let’s Encrypt SSL 설치 및 자동 갱신
Let’s Encrypt SSL을 설치하는 방식은 다양하게 존재하지만 개인적으로 자주 사용하는 웹서버 옵션을 이용해서 Let’s Encrypt SSL 인증서 발급하는 방법을 안내합니다. 다만 이 방식은 도메인이 연결되어 있어야하기 때문에 서버 아이피를 도메인으로 연결합니다.
참고: 인증서 발급 방식은 보안과 안정성을 위해 비정기적으로 갱신되고 있습니다. 만약 더 편한 방식이 업데이트 되면 내용을 수정합니다. 만약 아래 방식이 적용되지 않는 다면 댓글로 알려주세요.
서버 접속
윈도우 사용자는 puTTY, 맥 사용자는 터미널, iTerm2 과 같은 앱을 사용하거나 FTP를 이용해 서버에 접속합니다. 본문에서는 윈도우 환경에서 puTTY를 사용합니다. Putty 설치 및 사용방법 알아보기
- puTTY를 실행하고 서버 아이피와 포트(22) 를 입력 후 Open 버튼을 클릭합니다.
- 접속 전 위와 같은 창이 팝업되는데 확인 후 Accept 버튼을 클릭합니다.
- 사용자 이름에
root
를 password에 암호를 입력 후 Enter로 접속합니다.- 사용자 이름과 암호는 Vultr에서 확인할 수 있으며
- 암호 입력 시 아무것도 표시되지 않습니다.
- 방금 설치한 서버 컴퓨터에 접속했습니다.
웹 서버 conf 파일 수정
웹 서버 설정 파일을 수정해 도메인 정보를 서버에 알려주어야 합니다.
- 커맨드 라인에
cd /etc/nginx/conf.d
라고 입력 해 conf.d 폴더로 이동합니다.
참고: 위 이미지 상에서cd
가 빠져 있는데cd /etc/nginx/conf.d
라고 입력해야 합니다. 그리고 위 경로에 아무것도 없다고 하는 분들이 있는데 경로를 잘못 이동한 것 이거나 웹 서버 애플리케이션 (현재 nginx)의 내부 경로가 변경된 것(희박)이 원인일 수 있습니다. 경로는 서버 생성 후 Server Information 페이지 하단 Files and Folders of Interest에서 확인하시면 해당 서버의 주요 경로들을 확인할 수 있습니다. 위치를 모른다면 아래 탭을 확장 후 내용을 확인하세요.
경로는 서버 생성 후 Server Information 페이지 하단 Files and Folders of Interest에서 확인하시면 해당 서버의 주요 경로들을 확인할 수 있습니다.
ls
명령으로 conf.d 폴더 내 두 개의 파일을 확인할 수 있으며 이 파일들을 하나씩 열고 수정합니다.vi wordpress_http.conf
라고 입력합니다. Vi는 메모장과 같은 에디터이며 wordpress_http.conf 파일을 Vi 에디터로 연다는 것입니다.
- 방향키로 몇 칸 내리면 위 마킹한 위치의
server_name _;
을 찾을 수 있는데 다음 과정으로 값을 수정 후 편집기를 닫아줍니다.- i키를 눌러 입력 모드로 전환하고
server_name 내 사이트 주소;
형식으로 수정합니다. - Esc 키를 눌러 명령 모드로 전환되면
:wq
라고 입력해 저장하고 닫아줍니다.w
는 저장,q
는 종료입니다.
- i키를 눌러 입력 모드로 전환하고
wordpress_https.conf
이 파일도vi wordpress_https.conf
라고 입력해 동일하게 열어줍니다.
- 이전 파일과 동일한 형태로 구성되어 있으니 같은 작업을 한번 더 수행합니다.
Certbot
Let’s Encrypt SSL 인증서 발급은 Certbot을 이용합니다.
- 다음 명령으로 필요한 패키지를 설치합니다.
sudo apt install python3-certbot-nginx -y
- 설치 과정이 잠시 진행됩니다.
참고: 버전 관리 차원에서 앞서 안내한apt
의CertBot
패키지를 사용하고 싶지 않다면sudo add-apt-repository ppa:certbot/certbot
명령으로 리포지토리를 등록 후 패키지를 다운로드할 수 있습니다.
- 다음 명령으로 certbot을 이용해 ssl 인증서를 받아온 뒤 cerbot이 스스로 nginx설정을 해주도록 할 수 있습니다.
sudo certbot --nginx
- 이메일 주소를 입력합니다.
- 약관 동의를 위해
Y
를 입력합니다.
- 인증서 발급 시 메일을 수신할지 그리고 프론티어 재단에 메일 주소를 공유할지 등의 내용이 표시되니 적절한 값을 선택합니다. 본문에서는 Y로 진행합니다.
- 표시된 도메인 숫자를 선택 후 Enter 키를 입력합니다. 필자는 하나의 도메인만 사용했지만 루트 도메인과 서브도메인을 같이 등록하는 경우 다르게 표시될 수도 있습니다.
- 인증서 설치가 모두 완료 되었습니다.
- 사이트 접속 시 자물쇠가 정상적으로 표시되는 것을 볼 수 있습니다.
사이트 주소 현행화
이렇게 인증서 발급이 되었지만 워드프레스 대시보드 페이지로 접속하려면 적용되지 않은 것을 확인할 수 있는 이는 워드프레스 접속 후 사이트 주소를 현행화하면 됩니다.
- 이 상태에서 고급 버튼을 클릭합니다.
- 아래 아이피 주소(안전하지 않음)(으)로 이동의 링크를 클릭합니다.
- 다시 로그인 정보를 입력 합니다.
- 좌측 사이드 바의 탭을 Settings 로 전환 후 WordPress Address (URL) 와 Site Address (URL) 필드 를 사용할 도메인 주소로 수정합니다.
- 위와 같은 형식으로 수정하고 아래로 스크롤 해 저장합니다.
- 모든 주소가 정상적으로 표기되는 것을 볼 수 있습니다.
phpmyadmin 접속
Vultr 워드프레스를 이미지로 설치하면 여러가지 툴들이 같이 설치되는데 이 중에서 phpmyadmin도 포함되어 있습니다. 리눅스 서버 사용이 익숙하지 않은 사용자는 DB를 다루는 것이 어려울 수 있는데 이 경우 phpmyadmin에 접속하면 GUI 환경에서 데이터베이스를 관리할 수있습니다.
- Vultr에서 서버 상세 페이지 아래쪽 PHPMyAdmin 섹션에 표시된 링크를 클릭하면 PHPMyAdmin으로 접속 할 수 있습니다. 링크 아래 표시된 로그인 정보와 암호들은
- Username for both security modal and logging in: 모달창 과 PHPMyAdmin 로그인 아이디
- Password for security modal: 모달창 비밀번호
- Password for logging in to PHPMyAdmin: PHPMyAdmin 비밀번호
- 모달창이 팝업되는데 이곳에 모달창 정보를 입력 후 로그인을 클릭하면 다시 PHPMyAdmin 로그인 페이지로 연결되니 다시 한번 더 계정 정보를 입력합니다.
- 정상적으로 PHPMyAdmin 에 접속 되었습니다.
영상 설명
위 설명을 영상으로도 확인할 수 있습니다.
안녕하세요.
ls 명령으로 conf.d 폴더를 확인하였으나 아무런 파일도 존재하지 않는 경우 어떻게 진행해야 할까요?
질문 내용에 conf.d 경로에서
ls
입력 시 아무것도 나오지 않는 다고 하셨는데요.ls
명령은 현재 경로의 파일 목록을 보기 위한 리눅스 운영체제의 기본 명령어 업니다.경로가 맞다면 정상적으로 보여야 하는 것이니 안되신다면 경로 부분을 우선 설치 된 서버 정보 페이지 하단의 Files and Flioders of Interest에서 현재의 정확한 정보를 다시 한번 체크 해 보시면 정상적으로 표시될 것 같네요.
Files and Folders of Interest 경로
안녕하세요. 커맨트라인에서 서버 접속 직후 마지막 줄이 root@vultr:~#
인데 올려주신 포스팅 내용에 다음 사진 보면 cd /etc/nginx/conf.d 입력하라고 되어있는데 어떻게 입력하는지 모르겠어요ㅜㅜ
입력은 커서가 깜빡이는 곳에 타이핑 하시면 되네요.
cd /etc/nginx/conf.d
라고 그대로 입력해주세요.