HomeAbout Me

ghost 플랫폼 설치, 우분투 20.04, letsencrypt 인증서 설정하기

By Woosung
Published in ghost
2020-05-28 15:31:18
4 min read

드디어 현재 이 홈페이지에서 사용하고 있는 ghost 플랫폼을 설치하기 위한 조건은 완성되었습니다.

1. ghost 전용 Database 생성하기

SSH 창을 열고

위 명령어로 MariaDB로 접속합니다. MariaDB의 root 비번을 넣으면 접속이 됩니다.

위 명령어로 ghost 라는 DB를 만듭니다.

MariaDB 전용인 ghostuser 라는 계정을 로컬호스트에 생성하고, yourpassword라는 비번을 부여해줍니다.

yourpassword는 자신이 원하는 비번을 변경하세요!

위 명령어로 ghostuserghost라는 DB의 모든 권한을 얻습니다.

위 두 명령어로 저장 후 나갑니다.


2. ghost 전용 계정 생성하기

ghostuser 라는 계정을 만들 것입니다. 아까 MariaDB에서 만든 계정과 다른 존재입니다. 혹시나 다른 이름을 원하시면 바꾸셔도 됩니다.

바꾼다면, 밑에 있는 모든 ghostuser를 바꾼 이름으로 넣으면 됩니다.

참고로 ghost라는 이름은 사용해선 안됩니다.

ghost 플랫폼에서 사용할 이름이기 때문입니다.

비번을 두번 똑같이 넣으면 됩니다.

참고로 여기서도 비번이 표시가 안됩니다. 당황하지 마세요 ㅎㅎ

위와 같이 비번만 넣고 나머지는 그냥 엔터만 쳐도 넘어갑니다.

위 명령어로 ghostuser가 슈퍼유저그룹에 속하게 됩니다.

ghostuser 계정으로 전환합니다.


3. Node.js 패키지 설치하기

https://ghost.org/faq/node-versions

위 링크는 현재 ghost에서 지원하는 노드 버전입니다.

supported node versions

2020년 5월 28일 현재 12.x (Node v12 Erbium LTS)를 권장합니다.

비번을 넣으라고 나올 수 있는데, ghostuser의 비번을 넣어주면 됩니다.

위 명령어로 12.x 버전의 노드 저장소를 추가해줍니다. x에 숫자를 넣는게 아니라 그냥 x 그대로 놔두면 됩니다.

위 명령어로 node.js를 설치해줍니다.

위 명령어로 ghost-cli 이라는 커맨드라인 툴을 설치합니다.

위와 같이 잘 설치되었습니다.


4. ghost 설치

위 명령어로 ghost가 설치된 폴더를 생성합니다.

위 명령어로 해당 폴더의 소유권을 ghostuser에게 줍니다.

위 명령어로 해당 폴더에 775 권한을 줍니다.

위 명령어로 이동합니다.

이제 제일 중요한 ghost 인스톨 시간입니다.

위와 같이 시스템 체크 실패가 나오는데요. 우분투 20.04 버전은 아직 공식적으로 지원하지 않기 때문입니다. 걱정없이 Y 엔터 누르면 됩니다.

이 부분이 ghost 블로그의 주소를 결정합니다. 저는 aced.ga 도메인을 가지고 있기 때문에 https://aced.ga 를 넣었습니다.

https는 꼭 넣어주세요. SSL 인증서 발급 후 적용 가능합니다.

그리고 요새는 www는 붙이지 않는 것이 대세더라구요.

www.aced.ga 로 들어와도 aced.ga로 변환되게 설정할 것입니다.

이제 위와 같이 MySQL 관련 질문을 하는데, 아까 MariaDB에서 생성했던 바로 그 부분입니다.

처음에는 localhost는 엔터만 치면 됩니다. MariaDB에서 생성했던 유저가 ghostuser였고, 비번도 그때 지정한 그 비번을 넣으면 됩니다. database name도 아까 ghost라고 지정해줬죠? ^^

이제 위와 같이 설치가 될겁니다.

위와 같이 Nginx 설정을 할까? 물어보는데, Y 누르고 엔터를 누릅니다.

이렇게 설치가 됩니다.

윗 부분에서 /etc/nginx/sites-enabled/aced.ga.conf 이 경로가 Nginx에서 매우 중요합니다.

SSL 수동 셋팅할때 이 경로의 파일을 수정할 것이기 때문에 체크해두세요!

위와 같이 설정이 되었고 SSL 설정을 원하냐고 물어봅니다.

Y 엔터를 누르면 자동으로 설정해줍니다.(강력 추천)

자동으로 편하게 쓰고 싶으시면 Y 엔터를 추천드립니다.

와일드카드 인증서 설정 및 자체 인증서로 설정하고 싶다면 N 엔터를 누릅니다.

SSL 상세 설정은 뒷 부분에서 설정할 것입니다.

Y 엔터를 눌렀다면 자동으로 Letsencrypt로 발급 후 알아서 Nginx까지 설정해줍니다.

이메일 넣고 조금만 기다리면 알아서 acme.sh를 통해 webroot 방식으로 인증서를 발급해줍니다.

하지만 와일드카드 인증서 설정을 위해서 N 엔터를 눌렀다면 스킵이 될 것입니다.

Sysemd 설정을 원하냐고 물어보는데  y 엔터를 누릅니다.

이제 위와 같이 Ghost를 시작하겠냐고 물어보는데 y 엔터를 누릅니다.


SSL 인증서를 자동으로 설정했다면 위 주소로 바로 ghost 환경설정에 들어갈 수 있습니다.

바로 6. ghost 접속하기로 건너뛰어 가면 됩니다!

SSL 인증서를 수동으로 설정한다고 선택했다면 할일이 더 남았습니다.


5. SSL 설정하기

SSL 인증서를 미리 만들었다면 그대로 진행하면 됩니다.

SSL 인증서가 없다면

  1. .cf, .ga, .gq, .ml .tk 무료 도메인을 가지고 있는 경우 이 단계에서 인증서를 생성할 수 있습니다.
LuaDNS API를 이용한 무료도메인 와일드카드 SSL 인증서 발급 받기

위 링크를 통해서 클라우드플레어가 아닌 LuaDNS를 통해 무료도메인도 와일드카드 인증서를 발급받을 수 있습니다.

webroot 방식보다 DNS 방식으로 발급 받는 것이 훨씬 편하므로 강력 추천드립니다.


번거롭지만 webroot 형식으로 발급 받으려면 밑에 5-1. SSL 설정하기(무료 도메인 전용)을 참고하세요!

현재 ghost에서 webroot 형식으로 수동으로 받으려니 잘 안됩니다.

그냥 4. ghost 설치에서 자동으로 설정하는 것이 시간과 정신건강을 지키는 좋은 방법으로 보입니다.


  1. .com, .net, .co.kr 등 유료 도메인을 가지고 있는 경우
DNS 인증을 통한 acme.sh Letsencrypt SSL 인증서 발급받기

위 링크에서 클라우드플레어를 통하여 매우 쉽게 와일드카드 인증서 및 자동갱신을 설정할 수 있습니다.


이제 ghost 설치는 끝났지만 SSL 설정은 수동으로 좀더 해줘야 합니다.

위 명령어로 dhparams.pem 파일을 생성합니다.

대략 10~20초면 생성이 됩니다.


SSL 관련 설정파일을 미리 만들면 관리하기 편합니다.

위 명령어로 설정파일 만들기에 들어갑니다.

위 내용을 그대로 복사 후 붙여넣기 해줍니다.

제일 위에 인증서 경로를 꼭 수정해주세요!

컨트롤 + O, 엔터, 컨트롤 + X 엔터를 누르면 저장 후 빠져나옵니다.


아까 nginx 설정할 때 /etc/nginx/sites-enabled/aced.ga.conf  이 경로가 중요하다고 했죠?

이제 수정 할 것입니다.

위 명령어로 Nginx 설정을 할 것입니다.

SSH 창에 있는 모든 내용을 삭제합니다.

컨트롤+K를 누르면 한줄씩 삭제됩니다.

위 내용을 전부 마우스로 긁어서 복사해서 붙여넣기 합니다.

aced.ga 대신에 자신의 도메인을 넣으세요!

컨트롤 + O, 엔터, 컨트롤 + X 엔터를 누르면 저장 후 빠져나옵니다.

위 명령어로 설정이 잘 되었는지 확인할 수 있습니다.

위와 같이 oksuccessful이 나오면 성공입니다.

위 명령어로 nginx를 재시작 해줍니다.

바로 6. ghost 접속하기로 건너 뛰세요!


5-1. SSL 설정하기(무료 도메인 전용)

.cf, .ga, .gq, .ml .tk와 같은 Freenom의 무료 도메인의 경우 DNS API 인증을 통한 인증서 발급이 어렵기 때문에 이 단계에서 작업해주면 됩니다.

이제 ghost 설치는 끝났지만 SSL 설정은 수동으로 좀더 해줘야 합니다.

위 명령어로 dhparams.pem 파일을 생성합니다.

대략 10~20초면 생성이 됩니다.


SSL 관련 설정파일을 미리 만들면 관리하기 편합니다.

위 명령어로 설정파일 만들기에 들어갑니다.

위 내용을 그대로 복사 후 붙여넣기 해줍니다.

제일 위에 인증서 경로는 제가 알려드릴 방법으로 하신다면 바꿀 필요없습니다.

컨트롤 + O, 엔터, 컨트롤 + X 엔터를 누르면 저장 후 빠져나옵니다.


이제 acme.sh를 통한 webroot 인증서 발급을 위한 준비는 끝났습니다.

acme.sh 설치하기

위 명령어로 root 계정으로 들어갑니다.

root 계정이 아니면 권한 문제가 생길 수 있습니다. 공식 매뉴얼에는 sudo 명령어를 추천하지 않습니다.

위 명령어로 설치할 수 있습니다. 만약에 안된다면

위 명령어로도 설치할 수 있습니다.

설치할 때 빨간색 글자가 나올 수도 있는데, 무시해도 됩니다.

SSH 터미널(Putty 등)을 끄고, 다시 접속합니다.

SSH에 다시 접속하면 별다른 작업을 하지 않아도 root 계정으로 acme.sh 명령어를 바로 쓸 수 있습니다.


인증서 발급 받기

우선 위와 같이 root로 로그인 후 SSL 인증서가 저장될 폴더를 생성합니다.

위와 같이 webroot 방식으로 발급받으면 멀티도메인 거의 무제한(100개까지)으로 발급 받을 수 있습니다.

발급 받고 싶은 도메인 주소도 -d example.com 형식으로 추가해주면 됩니다.

aced.ga만 자신의 도메인으로 수정해주세요!

위와 같이 잘 발급되고, 원하는 위치에 인증서가 이동된 것을 확인할 수 있습니다.

참고로 ECDSA 인증서를 발급 받고 싶으시면

위 명령어에서 --keylength ec-256 (prime256v1, ECDSA P-256) 또는 --keylength ec-384 (secp384r1, ECDSA P-384)를 넣어주면 됩니다.

위와 같이 실행하면 ECDSA P-256 인증서가 생성됩니다.

다른 상세한 사항은 DNS 인증을 통한 acme.sh Letsencrypt SSL 인증서 발급받기를 참조하세요!

acme.sh를 통해서 인증서를 생성하면 60일 뒤에 자동으로 갱신해줍니다. 그러니 자동갱신에 대한 걱정은 안하셔도 됩니다 ^^


Nginx 설정하기

이제 SSL 인증서를 받았으니 웹서버단에서 수정해줘야 합니다.

아까 nginx 설정할 때 /etc/nginx/sites-enabled/aced.ga.conf  이 경로가 중요하다고 했죠?

이제 또 수정 할 것입니다.

위 명령어로 Nginx 설정을 할 것입니다.

위 내용에서 aced.ga를 자신의 도메인으로 바꾸세요!

SSH 창에 있는 모든 내용을 삭제합니다.

컨트롤+K를 누르면 한줄씩 삭제됩니다.

위 내용에서 aced.ga를 자신의 도메인으로 바꾸세요.

컨트롤 + O, 엔터, 컨트롤 + X 엔터를 누르면 저장 후 빠져나옵니다.

위 명령어로 설정이 잘 되었는지 확인할 수 있습니다.

위와 같이 ok와 successful이 나오면 성공입니다.

위 명령어로 nginx를 재시작 해줍니다.


6. ghost 접속하기

이제 드디어 인터넷 주소창에 자신의 도메인을 넣어봅니다.

ghost fin

위와 같이 나오면 성공입니다!

관리자 설정이 필요합니다.

주소창에

자신의도메인/ghost 로 들어갑니다.

저의 경우 https://aced.ga/ghost 입니다.

3 welcome

위와 같이 Create your account를 누릅니다.

4 create your account

홈페이지의 제목, 사용자이름, 이메일 주소, 비번을 넣고 Last step을 누릅니다.

5 invite

스탭을 초대하라고 하지만 그냥 my site로 이동을 누릅니다.

6 admin 1

이제 관리자 화면까지 왔습니다. 기존에 있던 글을 지우려면 Published에 들어가서 다 지울 수 있습니다.

감사합니다!


참조 사이트

https://ghost.org/docs/install/ubuntu
https://websiteforstudents.com/install-ghost-2-0-on-ubuntu-16-04-18-04-18-10-with-mariadb

Tags

Google CloudGhostUbuntuLetsencryptWildcardHTTPSSSL
Previous Article
Letsencrypt 와일드카드 인증서 발급 및 MariaDB 설치하기

Woosung

반가워요!

Topics

Gatsby

Ubuntu

ghost

gnuboard

Google Cloud

Related Posts

ghost casper테마의 첫화면 최신글 숫자 줄이기, disqus 댓글 달기
2020-06-03 14:49:51
1 min
© 2020, All Rights Reserved.
Vector created by pikisuperstar

Topics

GatsbyUbuntughostgnuboardGoogle Cloud

Social Media