이번 포스팅에서는 여러가지 이유로 인하여 syno-letsencrypt 패치가 안되는 구버전 이용자들을 위한 수동 인증서 발급 방법에 대해 설명합니다.
타이핑 할 명령어 는 모두 기울임
처리를 해 두었습니다 참고 하세요.
이미 발급하고 시간이 흘러 갱신해야 할 기간이 도래하였다면 이곳을 클릭해 업데이트 방법을 볼 수 있습니다.
Docker 를 설치 한다음 Putty 도 설치 합니다. Windows 10의 경우 기본 ssh 프로그램도 사용 가능합니다.
이 가이드는 시놀로지 인증서 발급을 기준으로 합니다. 다른 운영체제 (예를 들어 Ubuntu, CentOS 등등...) 도 기본적인 틀은 같을 겁니다.
응용하셔서 사용하시면 되겠습니다.
(작업 실패. DSM에 다시 로그인하고 다시 시도해 주십시오.)
저는 무슨 오류 때문인건지 인증서 탭에서 쉽게 발급 받는 방법이 먹히질 않아서... 이 방법을 사용합니다.........
준비물은 다음과 같습니다.
- Putty 또는 Windows 10 기본 SSH 클라이언트 (저는 이거 쓸 예정)
- 헤놀로지 서버
이 방법으로 여러개의 보유중인 도메인을 와일드카드 인증서로 발급 할 수 있습니다.
제가 보유중인 chaegeon.com 로 진행 해 보겠습니다.
윈도우 키를 누르고 cmd
를 타이핑 한 다음 우클릭 하여 관리자로 실행 합니다.
ssh 명령어를 실행 시켜 보면 다음과 같이 운용중인 서버에 접속 할 수 있습니다.
ssh [id]@chaegeon.com
보안 경고 입니다. yes
또는 y
를 타이핑 하고 엔터를 치면 비밀번호를 칠 수 있습니다.
암호를 입력하고 엔터를 칩니다. (도스 화면에서는 타이핑하는 비밀번호가 표시되지 않습니다.)
정상적으로 [id]@[ServerName]: ~$ 가 떳다면 로그인에 성공 했습니다.
다음 명령어를 입력합니다.
sudo -i
명령어를 입력하고 한번 더 사용자 암호를 타이핑 하면 root@[ServerName]:~# 가 뜹니다.
(저는 WinSCP 사용으로 암호를 묻지 않았습니다.)
이제 다음 명령어 중 일부를 수정해야 합니다.
docker run -it --name certbot \
-v '/volume1/home/cert/etc:/etc/letsencrypt' \
-v '/volume1/home/cert/var:/var/lib/letsencrypt' \
certbot/certbot \
certonly -d domain.com -d *.domain.com -d domain1.com -d *.domain1.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory
굵게 마크한 부분을 수정 하여 사용 합니다.
위에서부터
certbot
은 처음 이용하는 사용자라면 수정하지 않아도 괜찮습니다.
/volume1/home/cert/etc
key 파일이 저장되는 폴더 입니다. 사용자가 접근 가능한 폴더를 만들어 두고 절대경로를 지정합니다.
예를 들어 home/cert/etc 폴더에 저장할 경우 /volume1/home/cert/etc
/volume1/home/cert/var
마찬가지로 접근 가능한 폴더를 만들어 두고 절대경로를 지정합니다.
예를 들어 home/cert/var 폴더에 저장할 경우 /volume1/home/cert/var
etc 폴더와 var 폴더는 사용자가 미리 생성해 둬야 합니다.
생성하지 않으면 존재 하지 않는 폴더라고 오류가 발생합니다.
domain.com 자신이 보유중인 도메인을 입력합니다. 두 곳 다 똑같이 수정 하시면 됩니다.
이름이 아예 다른 도메인을 추가 하려면 -d 구문을 이용하시면 됩니다. 위 빨간 부분 참고
필요 없으면 빨간 부분은 삭제 합니다.
두번째 도메인부터는 인증서 세부 항목 중 "주체 대체 이름" 이라는 항목에서 확인 가능합니다.
다음 단계로 진행합니다.
다음과 같이 메모장에 복사해서 붙여넣은 다음 수정 하고 다시 복사 후 클라이언트에 마우스 우클릭 한번 클릭으로 쉽게 붙여넣기가 가능합니다.
엔터를 치면 처음 이용 하는 사용자는 이메일 입력 창이 뜹니다. 사용 하는 이메일을 적어주고 엔터를 누릅시다.
다음은 약관 동의 란 입니다. 영어라 보기도 싫으니 A
를 눌러 빠르게 넘어갑시다.
그 다음은 이메일 수신 동의 란 입니다. 수신 받지 않아도 발급 가능하니 N
을 눌러 빠르게 넘어갑시다.
다음은 IP 기록 동의 란 입니다. 동의 하지 않으면 발급이 진행 되지 않으니 Y
를 눌러 동의 합시다.
이제는 도메인 검증 단계 입니다. 도메인 검증이 통과 되어야 앞서 지정한 폴더에 key 파일이 저장됩니다.
DNS 관리 사이트에서 TXT 관리로 접속 하여 사진을 참고 해서 인증토큰 2개를 등록해야 합니다.
첫 토큰키가 뜬 뒤에 한번 더 엔터를 누르면 또 다른 토큰 키가 발급 됩니다.
글자만 완벽히 드래그 한다음 키보드 Ctrl 을 누르며 우클릭 하면 복사 됩니다.
도메인 앞 부분에 _acme-challenge
를 입력 하고, 토큰 키를 한개 씩 등록 합니다.
DNS 정보가 퍼지기까지 기다립니다. 우리가 무슨 민족입니까 빨리빨리 민족 아니겠습니까
등록 한 뒤에 TTL 기간을 최대로 줄입니다. 기본 2시간 -&; 5분
이제 윈도우 키와 R 을 눌러 실행 창을 연 다음 nslookup
명령어를 타이핑, 엔터 합니다.
새로운 도스 창에 set type=txt
를 타이핑, 엔터 한 다음 _acme-challenge.[ServerDomain]
을 타이핑, 엔터 합니다.
위에 입력한 토큰 값이 보일 때까지 위쪽 화살표와 엔터를 연타 하여 확인 합니다.
간혹 토큰 값이 보여도 다시 엔터를 치면 사라질때가 있습니다 안정적으로 보일때까지 기다립니다.
토큰이 안정적으로 보이면 클라이언트에서 엔터를 쳐 발급을 마무리 합니다. 빨간 글씨가 나오면 실패...
서버 접속 해서 certbot 관련 컨테이너 지우고 다시 시도.....
발급에 성공 했다면 이제 서버에 적용 시킬 차례 입니다.
총 4개의 파일이 위에서 지정 했던 /volume1/home/cert/etc/archive/[ServerDomain] 폴더에 저장 되어 있습니다.
이 파일들을 미리 다운로드 받아둡니다.
시놀로지에 접속 해서 제어판 - 보안 - 인증서 탭으로 이동 합니다.
추가 - 기존 인증서 교체 (아마 기본 Synology 인증서 인 분들이 많을 겁니다.) - 아래 기본 인증서로 설정 체크 하고 인증서 가져오기를 합니다.
개인키 - 다운로드 받은 파일 중 privkey1.pem
인증서 - 다운로드 받은 파일 중 cert1.pem
중간 인증서 - 다운로드 받은 파일 중 chain1.pem
등록 하고 확인을 누르면 검증 후 등록 됩니다.
이제 http 뒤에 s 를 붙이고 접속 하면 자물쇠가 걸려 있는 보안된 사이트가 구축 되었습니다.
갱신할때는 아래 명령어만 입력 하면 새 인증서로 교체 됩니다.
docker run --rm -it --name certbot \
-v /volume1/home/cert/etc:/etc/letsencrypt \
-v /volume1/home/cert/var:/var/lib/letsencrypt \
certbot renew
출처 : 이곳 을 참고하여 작성 하였습니다.
댓글 달기