티스토리 뷰

시놀로지 나스 활용 홈페이지 만들기 #01 Cloudflare DNS 이용하기

시놀로지 나스 활용 홈페이지 만들기 #02 HTTPS 접속을 위한 인증서 받기

시놀로지 나스 활용 홈페이지 만들기 #03 그누보드 설치하기

시놀로지 나스 활용 홈페이지 만들기 #04 DDNS 외부 액세스

시놀로지 나스 활용 홈페이지 만들기 #05 Web Station에서 가상호스트 서비스 포털 만들기

지난 시간에는 자신의 도메인이 등록된 곳에 Cloudflare DNS를 등록하는 것까지 해보았습니다.
이번에는 SSL(암호화 기반 인터넷 보안 프로토콜)을 이용한 HTTP 통신 방식인 'HTTPS'로 접속하기 위하여 인증서를 발급받아 보겠습니다.
이렇게 하는 이유는 HTTPS 접속 주소가 거의 필수인 이유가 첫 번째이고, 이를 통해 인증과 암호화 구간을 거쳐 정보가 전달됨으로써 보안이 강화된다는 점이 두 번째 이유라 할 수 있습니다.
단순하게 말해 HTTP://gunin.kr이 아니라 HTTPS://gunin.kr로 접속할 수 있도록 만들어 주는 것입니다. 현재 점유율이 가장 높은 크롬 브라우저의 경우 HTTP주소는 안전하지 않다는 경고와 함께 접속에 제한을 두고 있기 때문에, 이제 HTTPS 주소는 선택이 아니라 필수가 되었습니다.

01. 먼저 Cloudflare에서 추가한 사이트의 DNS 메뉴로 들어갑니다. [레코드 추가]를 클릭하고 다음과 같이 정보를 입력하고, 저장하도록 합니다. 이 때 프록시 상태는 꺼주도록 합니다(속도 느려짐). 참고로 레코드 A 형식은 Address Mapping records로 주어진 호스트에 대한 IP주소(IPv4)를 알려주는 역할입니다.

 


02. 참고로 레코드 A 형식의 IPv4에 입력할 주소는 제어판 - 외부 액세스 - DDNS - [추가]를 클릭하면 뜨는 창에서 '외부 주소(IPv4)' 부분을 확인해서 입력하면 됩니다.

 


03. 사용하는 공유기에 시놀로지 나스의 내부 IP주소를 DHCP 서버 주소로 등록합니다. 아울러 제어판 - 네트워크 - 네트워크 인터페이스 - LAN 포트 - [편집] - IPv4에서 DHCP로 LAN 포트가 동작할 수 있게 [확인]을 눌러 설정해줍니다. 이렇게 설정해두면 유동 IP를 사용하는 환경에서 고정 IP를 사용하는 환경처럼 시놀로지 나스를 운영할 수 있습니다.

공유기 설정 - 사용중인 IP 주소 정보에서 시놀로지 나스의 IP를 선택하고 등록을 누르면 등록된 주소 관리로 이동함
시놀로지 나스 설정


04. 다시 Cloudflare로 돌아가서 API 토큰을 발급받도록 하겠습니다.
# 발급받은 토큰은 Copy를 눌러서 복사한 다음 적당한 곳에 붙여넣기 하여 잘 보관해둡니다.

내 프로필 클릭
API 토큰 클릭

 

토큰 생성 클릭
템플릿 사용 클릭
영역 리소스에 도메인 지정하고 요약 계속 클릭
토큰 생성 클릭
생성 된 토큰은 Copy를 눌러 복사하고 적당한 곳에 붙여넣기 하여 잘 보관해 둘 것



이제부터 다음과 같은 조건을 갖춘 상태에서 작업이 이루어집니다.
1. 시놀로지 나스에 SSH 접속으로 작업합니다.
- SSH 접속을 위해 대표적으로 PuTTY라는 유틸리티를 활용합니다. Alternative binary files(독립 실행형 바이너리 파일)을 자신의 윈도우즈 비트에 맞게 다운로드 받아 사용하면 됩니다. https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
- 이곳을 꼭 참고하기 바랍니다. https://aoogle.tistory.com/entry/%EC%8B%9C%EB%86%80%EB%A1%9C%EC%A7%80-Putty%EB%A1%9C-SSH-%EC%A0%91%EC%86%8D%ED%95%A0-%EB%95%8C
2. 권한은 root나 root에 준하는 아이디를 사용합니다.


만약 아래 방법으로 인증서 추가가 가능하고 연결이 잘 된다면 굳이 05번 작업 순서로 갈 필요 없습니다.

다음은 인증서 1개로, a.com과 b.kr 2개의 도메인에 사용하는 방법입니다. 이런 식으로 처리하면 인증서 1개로 여러 도메인에 인증서를 부여할 수 있습니다. 핵심은 "주제 대체 이름"란에 사용할 도메인 주소를 모두 입력해주면 된다는 점.

제어판 - 보안 - 인증서 - 추가 - 새 인증서 추가 - 다음

 

알아볼 수 있는 설명을 기입하고, Let's Encrypt에서 인증서 얻기 선택후 다음 클릭

 

도메인 이름 및 이메일 설정하고, 주제 대체 이름란에 연결하고 싶은 형태의 서브 도메인 주소나, 다른 도메인 주소까지 모두 입력할 것. 다음과 같이 a.com과 b.kr 도메인 모두를  ;세미콜론으로 구분하여 모두 입력하면 됨 예) pma.a.com;port.a.com;a.com;www.a.com;pma.b.kr;port.b.kr;b.kr;www.b.kr

 

보안 - 인증서 - 설정 - 구성에서 추가한 인증서를 선택해주면 a.com과 b.kr 도메인에 인증서가 부여됨. 가상호스트에 지정한 도메인이 다르더라도 같은 인증서를 사용할 수 있다는 말.

 

다음과 같이 브라우저에서 확인 가능함

이렇게 시놀로지에서 제공하는 기능을 통해 인증서를 발급받고 연결해두면 갱신하는 과정도 신경 쓸 필요가 없습니다. 시놀로지에서 알아서 처리되므로, 일단 이 방법을 시도해보고 잘 된다면 굳이 아래 순서로 인증서를 발급받을 필요 없습니다.




05. acme.sh 설치(Let's Encrypt SSL 인증서 자동 갱신 도구)
PuTTY로 접속하여 아래 명령들을 한 줄씩 입력하고 [Enter]키를 누릅니다.
sudo -i
cd ~
wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
tar xvf master.tar.gz
cd acme.sh-master/
./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "이메일"
source ~/.profile
# 이메일은 zeroSSL에 들어갈 이메일이므로 Cloudflare 계정과 달라도 되지만 헛갈리니까 그냥 동일하게 사용함
## 빨간색은 주의 문구 정도이고 마지막에 OK가 나오면 됨

 


06. 환경변수 설정
역시 한 줄씩 입력하고 [Enter]키를 누릅니다.
export CF_Email="이메일"
export CF_Token="API 토큰"
export CF_Account_ID="계정ID"
export CF_Zone_ID="영역ID"
# 이메일 : Cloudflare 계정의 이메일
## API 토큰 : 04번 작업에서 발급받은 것
### 계정 ID, 영역 ID : 해당 도메인의 개요 메뉴에서 우측 하단에 보면 나옴. 권한을 제한하고 단일 도메인에 대해서만 적용하기 위해 설정하는 것

 


07. 인증서 생성
역시 한 줄씩 입력하고 [Enter]키를 누릅니다.
cd /usr/local/share/acme.sh
export CERT_DNS="dns_cf"
./acme.sh --issue --home . -d '내 도메인' -d '*.내 도메인' --dns "$CERT_DNS"
# 여기까지 입력하고 나면 한참을 기다려야 함
## 다음과 같이 나오면 인증 성공

 


08. 인증서 갱신 설정
제어판 - 작업 스케줄러 - 생성 - 예약된 작업 - 사용자 정의 스크립트
# 인증서 갱신 사용자 정의 스크립트
/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/
## 혹시 권한 경고가 나오더라도 확인 누르면 됨

 


09. 인증서 상세 설정 및 포트 적용
역시 한 줄씩 입력하고 [Enter]키를 누릅니다.
cd /usr/local/share/acme.sh
export SYNO_Username='관리자 계정'
export SYNO_Password='비밀번호'
export SYNO_Scheme="https"
export SYNO_Port="5001"
export SYNO_Certificate=""
./acme.sh --insecure --deploy --home . -d '내 도메인' -d '*.내 도메인' --deploy-hook synology_dsm
# 관리자 계정, 비밀번호 : 시놀로지 관리자 계정 정보 입력
## SYNO_Scheme : DSM이 사용할 프로토콜, https 지정해줬음

### SYNO_Port : DSM 포트, http인 경우 5000, https인 경우 5001로 설정. 제어판 - 로그인 포털 - DSM에서 리디렉션 가능하므로 5001로 설정함
#### 만약 에러가 발생하면 export SYNO_Create=1 를 한 줄 추가해 볼 것. 인증서가 존재하지 않을 경우 생성하라는 명령
##### 만약 기존 인증서 삭제 후 다시 생성했을 경우, 나스를 재시작 해 볼 것.

 


10. 인증서 확인
제어판 - 보안 - 인증서 - gunin.kr


참고로 인증서 발급이 잘못되었을 경우 삭제해야 한다면 아래와 같이 처리하면 됩니다. 도메인 목록은 ls 명령어로 볼 수 있습니다.

sudo -i
cd /usr/local/share/acme.sh
./acme.sh --remove -d [내 도메인]
rm [내 도메인] -r

마지막으로 이렇게 인증서가 추가되면, [설정] - 구성에서 인증서를 서비스와 연결해주어야 작업이 마무리 된다.

 

 

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함